2011-08-31 2 views
1

Как установить живую обоев по программе. Я хочу установить одну указанную живую обоев для своего устройства. Я подражаю LiveWallpaperPreview.java, который находится в приложении LivePicker. Мой код:Как настроить обои для рабочего стола по программе?

общественного недействительными setLiveWallpaperClick (View v) {

Intent intent = new Intent(WallpaperService.SERVICE_INTERFACE); 
    intent.setClassName("com.android.wallpaper", "com.android.wallpaper.galaxy.GalaxyWallpaper"); 
try { 
    mWallpaperManager.getIWallpaperManager().setWallpaperComponent(
      intent.getComponent()); 

} catch (RemoteException e) { 
    e.printStackTrace(); 
    // do nothing 
} catch (RuntimeException e) { 
    e.printStackTrace(); 
} 
finish(); 

} И разрешение на Manifest.xml является:

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

Но он не может работать в мое заявление. Правильно ли код?

+0

Вы собираетесь заменить текущие обои на нужные обои? Например, если у вас есть еще несколько загруженных обоев, и вы знаете имя пакета hes, можете ли вы установить его через приложение? – Naskov

ответ

3

Спасибо! Я нашел причину: Код правильный. Но apk должен быть нажат на каталог/system/app, он может работать. Если apk установлен в/data/app, он не может работать. Я думаю, что есть несколько разных разрешений между/system/app и/data/app.

+0

так что решение waht ?? – Fakher

0

использовать следующий код, чтобы установить пользовательские живые обои:

Intent намерения = новый Intent (WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER); intent.putExtra (WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, новое имя компонента (это, MyWallpaperService.class)); startActivity (намерение);

с дополнительным разрешением предложено выше по @Judy

здесь MyWallpaperService это пользовательские обои сервис.

Смежные вопросы