Android:java.lang.SecurityException: Permission Denial解决办法

来源:互联网 发布:手机淘宝双色球在哪里 编辑:程序博客网 时间:2024/05/17 06:36

有时程序需要我们创建自己的内容提供器,可能出现java.lang.SecurityException: Permission Denial: opening provider com.example.db.PersonProvider from ProcessRecord错误消息。

这是因为在你的提供外部访问接口的应用程序中没有提供给其他程序访问数据的权限。

解决方法:
在你的provider标签里添加android:exported属性

<provider                  android:name="com.example.databasetest.DatabaseProvider"           android:authorities="com.example.databasetest.provider"android:exported="true" ></provider> 

android文档里的内容

android:exported
Whether the content provider is available for other applications to use:
true: The provider is available to other applications. Any application can use the provider’s content URI toaccess it, subject to the permissions specified for the provider.
false: The provider is not available to other applications. Set
android:exported=”false” to limit access to the provider to your
applications. Only applications that have the same user ID (UID) as the provider will have access to it.
The default value is “true” for applications that set either android:minSdkVersion or android:targetSdkVersion to “16” or lower. For applications that set either of these attributes to “17” or higher, the default is “false”.

You can set android:exported=”false” and still limit access to your
provider by setting permissions with the permission attribute.

0 0
原创粉丝点击