web-dev-qa-db-ja.com

プログラムでライブ壁紙を設定する

数行のコードを使用してライブ壁紙を設定することは可能ですか?たとえば、ライブ壁紙が利用可能であることをユーザーに伝えたい場合は、「ここをクリックして設定してください」。

25
prashant

了解しました。古い回答に反対票を投じるのをやめました。ジェリービーンズ以上のデバイスの壁紙プレビュー画面にユーザーを直接送信する、より堅牢なソリューションについては、以下のエラー454の回答を参照してください。

========================================

ユーザーが壁紙を選択できる壁紙チューザーを起動する方法は次のとおりです。トーストは、何が起こっているのかをユーザーに説明する方法にすぎません。

Toast toast = Toast.makeText(this, "Choose '<WALLPAPER NAME>' from the list to start the Live Wallpaper.",Toast.LENGTH_LONG);
toast.show();

Intent intent = new Intent();
intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
startActivity(intent);
26
Josh

ジェリービーンズはライブ壁紙を直接設定する方法を提供するため、これを実現する方法は2つあります。この定型コードは、利用可能な最良の方法を選択します。

Intent i = new Intent();

if(Build.VERSION.SDK_INT > 15){
    i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);

    String p = HypercaneWallpaperService.class.getPackage().getName();
    String c = HypercaneWallpaperService.class.getCanonicalName();        
    i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(p, c));
}
else{
    i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
}
getActivity().startActivityForResult(i, 0);
34
Error 454