我正在开发一个从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();
但我还没有设法获得当前的壁纸名称。
我需要帮助。
提前致谢。
答案 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;
从那里获取文件名。
希望它对你有所帮助。