Android获取壁纸名称

时间:2015-07-29 09:50:29

标签: android android-wallpaper

我正在为我们公司开发一款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();
    }
}

2 个答案:

答案 0 :(得分:1)

请阅读get-current-wallpaper。并Get current wallpaper absolute path

final Drawable wallpaperManager = wallpaperManager.getDrawable();

有关更多信息,请访问:
https://developer.android.com/reference/android/app/WallpaperInfo.html

答案 1 :(得分:0)

WallpaperManager API Reference

public WallpaperInfo getWallpaperInfo ()

这里说:

  

如果 当前壁纸是动态壁纸组件,请返回有关该壁纸的信息。否则,如果是   静态图片,只需返回 null

您必须在背景中使用静态图片壁纸,而不是现场壁纸。