有什么方法可以让外部内容提供者只对一个包可用?例如仅适用于我的应用程序?提前致谢。
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"/>
现在使用相同的密钥库签名对两个应用程序进行签名,这样任何其他应用程序都无法访问您的内容提供程序数据。只有拥有这些权限并使用相同的密钥库签名签名的应用程序才能访问提供者数据。
您可以向内容提供者的清单声明添加权限。只有拥有这些权限的应用程序才能访问提供程序。