6

このチュートリアルに従って、最初のライブ壁紙を作成しています。しかしcan not be resolved or is not a field、これらの2行でエラーが発生しています

WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT

これを達成しようとしながら

Intent intent = new Intent( WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,
            new ComponentName(this, LiveWallService.class));

そして、コンパイラはこれらの提案を提供します:

WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER
WallpaperManager.COMMAND_DROP
WallpaperManager.COMMAND_SECONDARY_TAP
WallpaperManager.COMMAND_TAP
WallpaperManager.WALLPAPER_PREVIEW_META_DATA

何かおかしくないですか…?

4

1 に答える 1

17

WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER は、API レベル 16 (4.1.2) でのみ追加されました。おそらく、ターゲット SDK のバージョンを 16 未満に設定していませんか?

API レベル 16 未満では、インテント アクション WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER を使用して LWP 全体の選択画面にユーザーを送り、そこから壁紙を選択するように指示することしかできません。次の方法でコードを設定できます。

Intent i = new Intent();

if(Build.VERSION.SDK_INT >= 16)
{
    i.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
    i.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(packageName, canonicalName));
}
else
{
    i.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
}

// send intent
于 2013-01-14T11:03:29.307 に答える