![](/img/trans.png)
[英]Permission Denial: opening provider android.support.v4.content.FileProvider
[英]Custom content provider and Permission Denial exception
)我有两个应用程序。 在应用程序A中,我有一个数据库,可以从应用程序B中进行访问。我创建了自己的ContentProvider,以使应用程序B可以将数据写入应用程序A。但是,当我安装应用程序B然后安装应用程序A时,我得到了此异常-java.lang.SecurityException:权限拒绝:打开提供程序。 但是,当我安装应用程序A,然后安装B时-一切正常,应用程序可以通过提供程序进行通信。 我想知道这是正常的Android行为还是会出问题? 谢谢
这是我的应用程序中的一块清单
<permission android:name="com.myapp.READ_DATABASE" android:protectionLevel="normal" />
<permission android:name="com.myapp.WRITE_DATABASE" android:protectionLevel="normal" />
<provider android:authorities="....."
android:name="......"
android:exported="true"
android:readPermission="com.myapp.READ_DATABASE"
android:writePermission="com.myapp.WRITE_DATABASE">
</provider>
这是我的应用程序B清单的一部分
<uses-permission android:name="com.myapp.READ_DATABASE"/>
<uses-permission android:name="com.myapp.WRITE_DATABASE"/>
您的问题是应用安装的顺序。 您应该首先安装App A(提供内容提供者和权限的应用程序),然后安装App B(访问内容提供者的应用程序)。
好的,我找到了答案,但是它有缺点。 您需要将权限属性添加到清单中的两个应用程序中。
<permission android:name="com.example.permission.READ"
android:protectionLevel="normal"/>
缺点是两个应用程序都必须使用相同的签名证书才能运行,否则Android不允许您安装两个应用程序。
另请注意,使用中的应用应使用签名的保护级别
<permission android:name="com.example.permission.READ"
android:protectionLevel="signature"/>
请参阅此处的答案安装应用程序的顺序正在改变行为?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.