首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android8.1中访问WallpaperManager

在Android8.1中访问WallpaperManager
EN

Stack Overflow用户
提问于 2017-12-28 00:26:17
回答 1查看 1.3K关注 0票数 2

我正在构建一个启动器,需要访问用户当前的背景墙纸,但每次启动应用程序时,我都会在日志中收到警告W/WallpaperManager: No permission to access wallpaper, suppressing exception to avoid crashing legacy app.

下面是我使用的代码:

代码语言:javascript
复制
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
Drawable wallpaperDrawable = wallpaperManager.getDrawable();

ImageView imageView = findViewById(R.id.background);
imageView.setImageDrawable(wallpaperDrawable);

这段代码返回默认的股票背景图像,而不是我的实际背景图像。我已经注意到这个问题在其他一些主流的启动器上(Evie,Laun椅子等),但它似乎只发生在我最近更新的Andorid 8.1设备上。

进一步深入研究实际的Android源代码,我发现了以下内容:

代码语言:javascript
复制
if (context.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.O) {
    Log.w(TAG, "No permission to access wallpaper, suppressing"
    + " exception to avoid crashing legacy app.");
} else {
    // Post-O apps really most sincerely need the permission.
    throw e;
}

但我似乎找不到实际所需权限的引用。

如有任何帮助,我们不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-28 06:22:39

对于Api 27 (Android8.1)设备,将targetSdkVersion更改为27并将READ_EXTERNAL_STORAGE权限添加到清单可以修复此问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47995463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档