2013-01-14 6 views
5

Sto creando il mio pugno Live wallpaper seguendo il tutorial this. Ma sto errore can not be resolved or is not a field salire su queste due lineeErrore in corrispondenza di WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER

WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT

durante il tentativo di raggiungere questo

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

E compilatore fornisce questi suggessions:

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

è un qualsiasi cosa sbagliato...?

+1

Si prega di notare che '' '' ACTION_CHANGE_LIVE_WALLPAPER'' e EXTRA_LIVE_WALLPAPER_COMPONENT'' sono API 16+ caratteristiche. – harism

+0

Ok, grazie, è stato risolto ... – Arsalan

risposta

16

WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER è stato aggiunto solo nel livello API 16 (4.1.2). Forse hai impostato la tua versione di SDK di destinazione su qualcosa di inferiore a 16?

Sotto il livello API 16, è possibile solo inviare l'utente alla schermata di selezione LWP generale utilizzando l'azione intent WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER e chiedergli di selezionare lo sfondo da lì. È possibile impostare il codice nel seguente modo:

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

Ok, grazie è stato risolto ... – Arsalan

+0

puoi dirmi un'alternativa per questo in meno dell'API 16? – Arsalan

+0

Sfortunatamente, c'è una sola opzione sotto API Lvl 16 che conosco, che è dire all'utente di selezionare il tuo LWP dalla lista prima di mandarlo alla schermata elencando tutti gli sfondi installati con WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER. Ho aggiornato la mia risposta di conseguenza. – Thrakbad