2015-07-29 4 views
1

Je développe une application Android pour notre entreprise qui définit le fond d'écran à un fond d'écran spécifique de l'entreprise chaque fois que le téléphone est démarré. Il serait préférable de vérifier si le fond d'écran a été changé plutôt que d'exécuter le code pour changer le fond d'écran.Android obtenir le nom de fond d'écran

Est-il possible d'obtenir des informations d'identification (par exemple, un nom de fichier, etc.) à partir du papier peint actuel?

WallpaperManager wallpaperManager = WallpaperManager.getInstance(context); 
WallpaperInfo wallpaperInfo = wallpaperManager.getWallpaperInfo(); 

retours null pour wallpaperInfo.

Code pour le changement de fond d'écran:

public static void setWallpaper(Context context) { 

    // Has wallpaper changed? 
    if (/*--wallpaperNotChanged--*/) { 
     return; 
    } 

    try { 

     // Setup 
     Drawable drawable = context.getResources().getDrawable(R.drawable.test); 
     DisplayMetrics displayMetrics = new DisplayMetrics(); 
     WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
     WallpaperManager wallpaperManager = WallpaperManager.getInstance(context); 

     // Get display sizes 
     windowManager.getDefaultDisplay().getMetrics(displayMetrics); 

     // Create Bitmap 
     Bitmap unscaledWallpaper = BitmapFactory.decodeResource(context.getResources(), R.drawable.test); 
     Bitmap wallpaper = Bitmap.createScaledBitmap(unscaledWallpaper, displayMetrics.widthPixels, displayMetrics.heightPixels, true); 

     // Set wallpaper 
     wallpaperManager.setBitmap(wallpaper); 

    } catch (Exception e){ 
     Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG).show(); 
    } 
} 

Répondre

0

WallpaperManager API Reference

public WallpaperInfo getWallpaperInfo() 

Ici, il dit:

Si le fond d'écran actuel est un live wallpaper composant, retourner les informations sur ce fond d'écran. Sinon, s'il s'agit d'une image statique, renvoient simplement null.

Vous devez disposer d'un fond d'image statique dans votre arrière-plan, pas un live.