在我的应用之间共享数据(如IOS中的KeyChain)

时间:2014-02-20 00:48:06

标签: android android-contentprovider

我在Android中寻找类似于IOS中的KeyChain的机制。基本上我需要能够在我的“家庭”应用程序之间共享存储数据。这意味着其他应用程序无法访问此数据。如果稍后卸载任何应用程序,此共享存储也应该存在。因此使用app数据目录和SharedId不是一个解决方案。同样的Prefs也是出于同样的原因。

看过内容提供商 - 看起来不是我需要的。另外看过AndroidKeyStore / KeyChain,但看起来这与IOS KeyChain完全不同。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我也试图为此目的使用KeyChain,但是找不到方法。 最终,我决定使用Content Provider,将export的标志设置为false,并结合一个权限属性,以在共享相同签名密钥的两个应用之间实现安全的数据共享。

这来自提供者属性文档:  https://developer.android.com/guide/topics/manifest/provider-element.html#prmsn

  

android:exported   false:该提供程序不可用于其他应用程序。设置android:exported =“ false”可以限制对您的应用程序提供者的访问。只有具有与提供者相同的用户ID(UID)的应用程序,或已通过android:grantUriPermissions元素临时授予对提供者访问权限的应用程序才可以访问它。   您可以设置android:exported =“ false”,并且仍然可以通过使用权限属性设置权限来限制对提供者的访问。