Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中的两个或多个应用程序之间安全地共享数据?_Android_Android Contentprovider_Keychain_Android Contentresolver_Android Security - Fatal编程技术网

如何在android中的两个或多个应用程序之间安全地共享数据?

如何在android中的两个或多个应用程序之间安全地共享数据?,android,android-contentprovider,keychain,android-contentresolver,android-security,Android,Android Contentprovider,Keychain,Android Contentresolver,Android Security,我正在为企业环境制作一个应用程序框架,它涉及从设备内存在两个或多个应用程序之间共享数据。这些数据需要存储在设备上,并且只能由少数应用程序访问(可以通过用于安装它们的证书来识别)。此外,它需要以安全的方式存储,以便其他第三方应用程序无法访问。实现此功能的最佳方式是什么 据我所知,我已经阅读了一些只会促进这一进程的材料。数据的实际存储才是更重要的。我还研究了Android的功能,这似乎是最接近我需要实现的功能 有没有办法将ContentProviders和ContentResolver与密钥链API

我正在为企业环境制作一个应用程序框架,它涉及从设备内存在两个或多个应用程序之间共享数据。这些数据需要存储在设备上,并且只能由少数应用程序访问(可以通过用于安装它们的证书来识别)。此外,它需要以安全的方式存储,以便其他第三方应用程序无法访问。实现此功能的最佳方式是什么

据我所知,我已经阅读了一些只会促进这一进程的材料。数据的实际存储才是更重要的。我还研究了Android的功能,这似乎是最接近我需要实现的功能

有没有办法将ContentProviders和ContentResolver与密钥链API集成?这样做正确吗?如果没有,实现相同目标的最佳方法是什么?此外,我还没有找到好的代码示例来完全理解keychainAPI的功能请帮忙

编辑:
我也看过了。这在内部使用了Keychain API,为了在应用程序之间共享数据,应该使用Keychain。虽然我还没有找到相同的代码示例,也没有关于如何使用keychainapi的详细文档或API指南。我正在寻找一款android版的


Android 5中还引入了一种称为的功能。这是实现我想做的事情的正确方法吗

您必须使用相同的
sharedUserId
声明您的应用程序,例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mydomains.myapp"
    android:sharedUserId="com.mydomains.shared.user.id"
    android:sharedUserLabel="@string/appName">

在这种情况下,存储在两个应用程序的私有存储中的所有数据将相互可用(假设它们已使用相同的签名签名)

如手册所示:

sharedUserId:将与共享的Linux用户ID的名称 其他应用程序。默认情况下,Android会为每个应用程序分配其 拥有唯一的用户ID。但是,如果此属性设置为相同 值对于两个或多个应用程序,它们将共享相同的ID- 前提是它们也由同一证书签署。 具有相同用户ID的应用程序可以访问彼此的数据,如果 需要时,在同一进程中运行


到目前为止你做了什么?@Amy,我已经编辑了问题并添加了链接。你能帮忙吗?你解决了吗?我也在寻找一个类似的问题。你是如何解决这个问题的?@KeyaMadhukar你能解决吗?托管配置文件并不是最好的选择,因为它在API 29中已被弃用。我还想实现类似的功能,但无法在Keychain上找到一些好的示例。非常感谢您的帮助。共享用户ID有一定的限制,其中一些限制在本文中也提到过,我主要关心的不是如何访问数据,而是如何存储(内部或外部存储中的SharedReferences vs file vs服务器上的sqlite DB vs)我的应用程序已经发布,没有android:sharedUserId,现在我想分享我的新应用程序的数据,我该怎么做?你知道如果我们没有设置,
android:sharedUserId
的默认值是什么吗?如果你将为旧应用程序的新版本设置
sharedUserId
,你的用户将无法自动更新你的应用程序-这是一个重大问题,所以在设置
sharedUserId