安卓r上面写了一个ContentProvider的demo,一直报下面的错误
10-24 18:00:08.328 3236 5020 I AppsFilter: interaction: PackageSetting{e08f7bb com.android.demo.contentresolverdemo/10273} -> PackageSetting{18d0c4a com.android.demo.contentproviderdemo/10272} BLOCKED
检查了很久demo并没有问题,只能debug下contentprovider源码,发现安卓r多了一个AppsFilter的类,里面有一个mShouldFilterCache的成员变量记录了每一个uid可被访问的uid
上网查了一下还真是r上新出的机制
Android 11 更改了应用查询用户已在设备上安装的其他应用以及与之交互的方式。使用新的 <queries> 元素,应用可以定义一组自身可访问的其他应用。通过告知系统应向您的应用显示哪些其他应用,此元素有助于鼓励最小权限原则。此外,此元素还可帮助 Google Play 等应用商店评估应用为用户提供的隐私权和安全性。

在Android R版本上,一个ContentProvider的demo遇到AppsFilter: interaction: BLOCKED错误。原因是Android 11引入了新的权限控制机制,要求app在manifest中声明可访问的其他应用。通过添加<queries>元素,可以解决这个问题,以符合最小权限原则,并提高隐私和安全性。修复后,应用能够正常访问已声明的应用数据。
最低0.47元/天 解锁文章
665

被折叠的 条评论
为什么被折叠?



