Android - 如何获取当前的壁纸名称

时间:2016-05-31 08:05:04

标签: android wallpaper

我正在开发一个从com.android.launcher3包可绘制资源设置壁纸的应用程序。在某些时候,我需要检查壁纸是否设置正确,以便我可以继续其他步骤。

经过SO和谷歌搜索的一些研究后,我无法找到有关获取当前壁纸名称的任何信息。

以下是我设置drawable的方法,我没有问题:

try {
        WallpaperManager wallpaper_manager = WallpaperManager.getInstance(m_context);

        Resources res       = m_context.getPackageManager().getResourcesForApplication("com.android.launcher3");
        int drawable_id     = res.getIdentifier(wallpaper_name, "drawable", "com.android.launcher3");
        Drawable drawable   = res.getDrawable(drawable_id, null);

        if(drawable != null) {
            wallpaper_manager.setBitmap(((BitmapDrawable)drawable).getBitmap());
        }

    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

我也可以将当前的壁纸作为可绘制的:

WallpaperManager wallpaper_manager = WallpaperManager.getInstance(m_context);
Drawable drawable                  = wallpaper_manager.getDrawable();

但我还没有设法获得当前的壁纸名称。

我需要帮助。

提前致谢。

1 个答案:

答案 0 :(得分:-1)

我会尝试这两个选项:

<强> 1。使用wallpaperManager

您应该能够使用此信息获取信息:

wallpaperManager.getWallpaperInfo();

这将返回一个WallpaperInfo对象,其中包含有关壁纸的所有数据。

更多信息 https://developer.android.com/reference/android/app/WallpaperManager.html

<强> 2。获取可绘制文件

您也可以尝试获取drawable的URI:

String imageUri = "drawable://" + R.drawable.image;

从那里获取文件名。

希望它对你有所帮助。