我在Android中寻找类似于IOS中的KeyChain的机制。基本上我需要能够在我的“家庭”应用程序之间共享存储数据。这意味着其他应用程序无法访问此数据。如果稍后卸载任何应用程序,此共享存储也应该存在。因此使用app数据目录和SharedId不是一个解决方案。同样的Prefs也是出于同样的原因。
看过内容提供商 - 看起来不是我需要的。另外看过AndroidKeyStore / KeyChain,但看起来这与IOS KeyChain完全不同。
有什么建议吗?
答案 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”,并且仍然可以通过使用权限属性设置权限来限制对提供者的访问。