[英]Android - How to get current wallpaper name
我正在开发从com.android.launcher3
包可绘制资源中设置墙纸的应用程序。 在某个时候,我需要检查墙纸是否设置正确,以便继续进行其他步骤。
经过对SO和谷歌搜索的研究后,我无法找到有关获取当前壁纸名称的任何信息。
这是我没有问题的设置可绘制对象的方法:
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.使用wallpaperManager
您应该能够使用以下方法获取信息:
wallpaperManager.getWallpaperInfo();
这将返回一个WallpaperInfo对象,其中包含有关墙纸的所有数据。
更多信息https://developer.android.com/reference/android/app/WallpaperManager.html
2.获取绘图文件
您也可以尝试获取可绘制对象的URI,如下所示:
String imageUri = "drawable://" + R.drawable.image;
并从那里获取文件名。
希望对您有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.