我有一个已经上市的应用程序,我们称之为“旧应用程序”。我想创建一个“新的应用程序”,它与旧的应用程序共享数据,我决定使用SharedID。
我更改了新应用的清单,添加了以下内容:
android:sharedUserId="com.myname.myoldapp"
com.myname.myoldapp是旧应用包的名称。但它不起作用。
如何使用新应用访问旧的应用数据? 更改旧应用程序的userId以匹配新应用程序的shareduserid显然不是一个选项,因为旧应用程序已经在线,所有更新它的用户都将丢失其个人数据。
PS:证书是一样的。
谢谢。
答案 0 :(得分:5)
我有一个已经上市的应用程序,我们称之为“旧应用程序”。我想创建一个“新的应用程序”,它与旧的应用程序共享数据,我决定使用SharedID。
在不破坏所有现有装置的情况下,这将不再可能。
我更改了新应用的清单,添加了以下行:android:sharedUserId =“com.myname.myoldapp” 其中com.myname.myoldapp是旧应用程序包的名称。但它不起作用。
如果您阅读the documentation on android:sharedUserId
,您会看到告诉您:“但是,如果此属性设置为相同值,则两个或更多应用程序将共享相同的ID“(强调我的)。由于您的旧应用没有android:sharedUserId
,因此您无法将新应用设置为旧应用的android:sharedUserId
值。
如何使用新应用访问旧的应用数据?
使用Service
。或ContentProvider
。或Android支持的任何其他形式的IPC。旧应用程序需要公开基于IPC的API,新应用程序可以使用该API来访问旧应用程序的数据。您可以使用自定义signature
级别权限将这些API的访问权限仅限于您的应用。