gpt4 book ai didi

android - 如何从服务类中更改墙纸?

转载 作者:行者123 更新时间:2023-11-29 20:27:40 25 4
gpt4 key购买 nike

我想每隔几分钟在一次 Activity 中更换手机壁纸...

我在我的主要 Activity 中使用它,在那里工作正常>

    DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
int width = metrics.widthPixels;

Bitmap bmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.superman);
Bitmap bitmap = Bitmap.createScaledBitmap(bmap2, width, height, true);

WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
wallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}

但是现在在我的服务中我不能使用这段代码...因为它不起作用..(不能使用 getWindowManager 方法)我如何在服务类中执行相同的操作?

最佳答案

but now on my service i can't use this code... since it doesn't work.. (can't use the getWindowManager method)

getWindowManager() 是 Activity 上的一个方法,当您扩展 Service 时,您不在 Activity

how do i do the same from inside a service class ?

您可以通过其他方式调用该方法:

WindowManager wm= (WindowManager) getSystemService(YOURCONTEXT.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();

您也可以使用 DisplayMetrics 来完成此操作,就像您在 Service 中所做的那样

DisplayMetrics metrics = getApplicationContext().getResources().getDisplayMetrics();

不要忘记将此添加到您的 manifest.xml

<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>

关于android - 如何从服务类中更改墙纸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32338765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com