android - 使内容提供者仅可用于一个包

时间:2013-09-10 15:05:55

标签: android package android-contentprovider

有没有办法让外部内容提供商只能使用一个包? 例如,仅适用于我的应用程序? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

虽然为时已晚,但我想分享一下我找到的答案, 您需要在内容提供程序应用程序的清单文件中声明自己的自定义权限,如此..

<permission android:name= "com.android.testpermission" android:protectionLevel="signature" >

在您的Content Provider标记内,您必须指定客户需要具有这种方式的权限...

<provider android:name=".MyProvider" android:authorities="com.example.contentproviderexample.MyProvider" android:exported="true" android:permission="com.android.testpermission" android:multiprocess="true" ></provider>

在第二个访问内容提供商数据的应用程序中,您需要在清单文件中指定使用权限,如下所示..

<uses-permission android:name="com.android.testpermission"/> 现在使用相同的密钥库签名和&amp;这样,任何其他应用程序都无法访问您的内容提供商数据。只有拥有这些权限的应用程序才能使用相同的密钥库签名签名将能够访问提供者数据。

答案 1 :(得分:0)

您可以为内容提供商的清单声明添加权限。只有拥有这些权限的应用程序才能访问提供程序。