【发布时间】:2019-05-21 17:51:03
【问题描述】:
我使用下面的代码来检索安卓 8.1 手机上的安卓锁屏壁纸:
WallpaperManager manager = WallpaperManager.getInstance(getActivity());
ParcelFileDescriptor pfd = manager.getWallpaperFile(WallpaperManager.FLAG_LOCK);
if (pfd == null) // pfd is always null for FLAG_LOCK, why?
return;
Bitmap lockScreenWallpaper = BitmapFactory.decodeFileDescriptor(pfd.getFileDescriptor());
// ...
我已经授予READ_EXTERNAL_STORAGE权限并预先设置了锁屏壁纸。
我在真机上运行demo,发现pfd对于FLAG_LOCK总是为空,所以无法获取锁屏壁纸。请帮忙解决问题,谢谢。
【问题讨论】:
-
我已经检查了你的代码。它运作良好。你真的请求许可吗?还是仅将其添加到清单文件中?我认为问题来自许可。
-
@aminography 我已在清单文件中添加了权限,并在应用信息屏幕上手动授予了它。我在 LGE Nexus 5x 8.0 和 Xiaomi Redmi note5 8.1 上测试了代码,都失败了。你是在真机上运行代码吗?谢谢。
-
是的,我在三星 A5,OS 8.0 上测试过
-
@aminography 我不知道为什么,它在我的两部真实手机上都失败了。您能否检查我们的代码之间是否存在一些差异?或者只是在一个新的答案中发布你代码的主要部分?谢谢。
标签: android lockscreen android-wallpaper