如何从服务类内部更改壁纸?

时间:2015-09-01 18:41:47

标签: android service

我想每隔几分钟在一项活动中更改手机的壁纸......

我在我的主要活动中使用它,这在那里工作得很好>

{{1}}

但是现在我的服务我无法使用此代码...因为它不起作用.. (不能使用getWindowManager方法) 我如何从服务类内部做同样的事情?

1 个答案:

答案 0 :(得分:2)

  

但是现在在我的服务上我无法使用此代码...因为它不起作用..(不能使用getWindowManager方法)

getWindowManager()是关于“活动”的方法,当您展开Service时,您不在Activity

  

我如何从服务类内部做同样的事情?

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

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"/>