2013-01-14 18 views
5

私は自分の拳のライブ壁紙を作成しています。thisチュートリアルに従ってください。WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPERでエラーが発生する

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

は任意のものです:この

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

とコンパイラこれらsuggessionsを提供しachiveしようとしたときに、しかし、私はこの2行

WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT

にエラーcan not be resolved or is not a fieldを取得しています違う...?

+1

'' ACTION_CHANGE_LIVE_WALLPAPER''と '' EXTRA_LIVE_WALLPAPER_COMPONENT''はAPI 16+機能していることに注意してください。 – harism

+0

ありがとう、ありがとう、それは固定されています... – Arsalan

答えて

16

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 
+0

ありがとう、それは固定されています... – Arsalan

+0

APIのレベル16未満でこれを代替する教えてくださいできますか? – Arsalan

+0

残念ながら、私が知っているAPI Lvl 16の下には、WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSERを使ってインストールされているすべての壁紙を一覧表示する前にリストからあなたのLWPを選択するように指示するオプションが1つしかありません。それに応じて私の答えを更新しました。 – Thrakbad