该应用程序是唯一绝对需要了解权限的应用程序,因为它是在
<provider>带有
android:authorities属性的清单中声明的应用程序。
因此,原则上,只要您从提供程序中删除所有特定于授权的逻辑,它就应该“正常工作”,例如:
- 这些静态数据成员(现在移至托管应用)
UriMatcher
(自己滚动一些不检查权限,但专注于其余部分的内容Uri
)
如果出于某种原因,您绝对确定您的提供者需要了解其权限,那么在将提供者用于实际工作之前,应用必须将其提供给提供者。可能的方法包括:
由于a
ContentProvider
是自然单例,因此将其分配给静态数据成员,然后通过自定义Application
类中的自定义方法向其提供授权字符串(因为首先初始化提供程序,所以应该可以)如果你只支持API级别11+,有自定义
Application
类使用call()
上ContentResolver
提供权威的ContentProvider
假设只有真正的调用(例如to
query()
,insert()
)是有效的,并且只是根据Uri
您看到的第一个调用中的内容来延迟初始化您的权限



