android - 如何跨应用程序限制内容提供者数据

标签 android android-contentprovider

我们如何确保某些应用程序无法访问我存储在内容提供商中的数据,而某些其他应用程序可以访问这些数据?基本上我需要允许一些我感兴趣的应用程序访问我存储在 Content Provider 中的数据,但我不希望所有应用程序都能够访问该数据。我怎样才能做到这一点?

谢谢。

最佳答案

最简单的方法是使用您定义的权限来保护内容提供者。将其设为签名权限,这样只有使用您的证书签名的应用才能获得它。

参见:

http://developer.android.com/guide/topics/security/security.html

http://developer.android.com/reference/android/R.styleable.html#AndroidManifestProvider

http://developer.android.com/guide/topics/manifest/provider-element.html

如果基于证书这样做还不够,您将需要自己编写权限检查。这是通过为应用程序的传入调用调用 Binder.getCallingUid() 并确定给定的 uid 是否有权访问您的提供者来完成的。不过,实际实现一个真正安全的不同政策需要大量仔细的思考和设计。

关于android - 如何跨应用程序限制内容提供者数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6120025/

相关文章:

android - java.lang.IllegalArgumentException : Unknown URI content 异常

android - 用于在未启动的android和服务器之间同步数据的SyncService

javascript - 如何从 MyApp Android 打开网络浏览器应用程序的 URL

android - 如何在 android 中使用 bulkInsert() 函数?

android - 谷歌云消息服务器端

android - 在 AsyncTask 中未触发注册地理围栏时的 setResultCallback

android - 如何共享 ContentProvider 的公共(public) URI

android - Lint 警告 ExportedContentProvider

android - 发送坐标到设备

java - 让微调器显示他们选择的内容