在2个Android应用程序之间共享数据
我已经经历了很多类似的答案,但由于最近很多事情都发生了变化,我想再问一次 我有一个应用程序A,它将数据存储在共享首选项中。我希望应用程序B能够通过应用程序A访问存储在共享首选项中的数据 迄今为止的调查结果-在2个Android应用程序之间共享数据,android,sharedpreferences,ipc,Android,Sharedpreferences,Ipc,我已经经历了很多类似的答案,但由于最近很多事情都发生了变化,我想再问一次 我有一个应用程序A,它将数据存储在共享首选项中。我希望应用程序B能够通过应用程序A访问存储在共享首选项中的数据 迄今为止的调查结果- 我们不能使用WORLD\u READABLE作为共享首选项,因为它已经 他被弃用了 我们无法使用sharedUserId共享数据,因为数据已被删除 不赞成 我还了解到,使用相同密钥签名的应用程序可以访问每个应用程序 其他人的代码和数据。但是我们可以通过这样做来访问数据吗? (或者我们需要在
- 我们不能使用WORLD\u READABLE作为共享首选项,因为它已经 他被弃用了
- 我们无法使用sharedUserId共享数据,因为数据已被删除 不赞成
- 我还了解到,使用相同密钥签名的应用程序可以访问每个应用程序 其他人的代码和数据。但是我们可以通过这样做来访问数据吗? (或者我们需要在签字的同时做些别的事情吗 过程?)。如果是,如何进行
sharedUserId
是否还有其他方式共享数据
你可以:
- 让一个应用程序公开另一个应用程序启动的服务,并通过
extras传递数据Intent
- 让一个应用公开另一个应用绑定的服务,并通过AIDL参数传递数据
- 让一个应用程序向另一个应用程序发送显式广播
,数据包含在Intent
extras中Intent
- 让一个应用程序使用
extras中包含的数据在另一个应用程序中启动活动Intent
ContentProvider
解决方案一样,这些选项可以通过Android的权限系统进行保护。如果您小心地设置了自定义权限,并使用protectionLevel
的signature
,这些应用程序将能够相互通信,但其他应用程序将无法侵入这些通信通道
当然,另一种选择是只使用一个应用程序。谢谢您的回答。在上面提到的所有4种解决方案中,流程从想要共享数据的应用程序开始,如果我错了,请纠正我。我的用例是访问其他应用程序已经存储的数据,内容提供商允许我这样做。我的用例基本上是一个SSO实现,用于访问令牌和其他详细信息。@KashishMalhotra如果它用于帐户数据,您考虑过AccountManager吗@KashishMalhotra:“在上面提到的所有4种解决方案中,流程从想要共享数据的应用程序开始,如果我错了,请纠正我”——第二种(绑定到服务)更像是一种“拉”机制,而不是“推”,这似乎是您想要的。@Gabeschen谢谢您的建议,我已经看过了。我们已经有了一个实时应用程序,我们想让另一个应用程序实时运行并使用SSO。由于大多数用户将已经登录到第一个应用程序,我们将无法使用第一个应用程序创建自定义帐户,对吗?此外,我想知道像Amazon这样的公司如何使用其应用程序实现SSO,我在任何地方都找不到它。他们没有列出自定义帐户,所以我最好的猜测是这些应用程序在他们之间共享数据。CMIIW。如果有人能给我指一些相关的资源,那就太好了。