如何在Android 13上获取当前壁纸?

9

似乎在Android 13上,WallpaperManagergetDrawable()是无用的,因为用户无法为其获取READ_EXTERNAL_STORAGE权限。

有没有方法在API级别33上获取当前壁纸?我的意思是不降低targetSdk级别等方式。


尝试在问题追踪器上打开一个问题。 - ATP
它已经打开了 - https://issuetracker.google.com/issues/237124750 我想也许有人知道如何暂时绕过这个问题。或者可能有另一个API,我不知道。 - Ruslan Harvasyuk
而且安卓开发者不急于解决这个问题。 - Ruslan Harvasyuk
2个回答

4
对于我的小型动态壁纸应用程序(在此处),我提供导入先前的壁纸,因此我也需要这个功能。我还需要一个类似的函数 getWallpaperFile,它也需要存储权限。
目前我找到的唯一解决方法是使用 MANAGE_EXTERNAL_STORAGE 权限。
然而,当我尝试使用此权限发布我的应用程序时,策略团队拒绝了它。我一直在不断申诉,但至今没有帮助。
我希望 Google 能够解决这个问题,否则我将不得不准备一个应用程序,作为我的应用程序的附属品。
您可以针对 API 32 进行定位,但当 Google 强制开发人员针对 API 33 时,这肯定不是一个选项...
我还试图访问文件本身(它们位于 "/data/system/users/0",命名为 "wallpaper" 和 "wallpaper_lock"),但可悲的是,我未能在没有提到的权限的情况下读取它们。我可以通过 root 访问来做到这一点,但那完全不同...
由于 Android 13 上的这些可怕变化,我创建了一个新请求,以获得一个新的权限,仅用于获取当前壁纸信息(无论是从锁屏/主页获取的图像还是动态壁纸),在这里:
https://issuetracker.google.com/issues/263721379
请考虑点赞。

0
在问题中: https://issuetracker.google.com/issues/237124750 他们评论说:
引用: #60: 状态: 不会修复 (预期行为) 我们与产品和工程团队讨论了这个行为,并且他们支持将API仅对特权系统应用程序开放。
因此,除非我们是系统应用程序,否则我们将无法获取壁纸可绘制资源。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接