電話が起動されるたびに壁紙を特定の会社の壁紙に設定する、当社のAndroidアプリを開発しています。コードを実行して壁紙を変更するよりも、壁紙が変更されたかどうかを確認する方が望ましいでしょう。
現在の壁紙から識別情報 (ファイル名など) を取得する方法はありますか?
WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);
WallpaperInfo wallpaperInfo = wallpaperManager.getWallpaperInfo();
null
を返しますwallpaperInfo
。
壁紙変更のコード:
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();
}
}