1

電話が起動されるたびに壁紙を特定の会社の壁紙に設定する、当社の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();
    }
}
4

2 に答える 2

1

このget-current-wallpaper をお読みください。そして、現在の壁紙の絶対パスを取得します

final Drawable wallpaperManager = wallpaperManager.getDrawable();

より良い情報については、
https ://developer.android.com/reference/android/app/WallpaperInfo.html をご覧ください。

于 2015-07-29T13:15:03.137 に答える
0

WallpaperManager API リファレンス

public WallpaperInfo getWallpaperInfo ()

ここでは次のように述べています。

現在の壁紙がライブ壁紙コンポーネントの場合、その壁紙に関する情報を返します。それ以外の場合、それが static image の場合は、単にnullを返します。

ライブ壁紙ではなく、背景に静止画像の壁紙が必要です。

于 2015-09-09T13:25:57.513 に答える