5

我有一个已经上市的应用程序,我们称之为“旧应用程序”。我想创建一个“新应用程序”,与我决定使用 SharedID 的旧应用程序共享数据。

我更改了 NEW 应用程序的清单,添加了以下行:

android:sharedUserId="com.myname.myoldapp"

其中 com.myname.myoldapp 是旧应用程序包的名称。但它不起作用。

如何使用新应用访问旧应用数据?更改旧应用程序的 userId 以匹配新应用程序的 shareduserid 显然不是一种选择,因为旧应用程序已经在线并且所有更新它的用户都会丢失他们的个人数据。

PS:证书是一样的。

谢谢,。

4

1 回答 1

5

我有一个已经上市的应用程序,我们称之为“旧应用程序”。我想创建一个“新应用程序”,与我决定使用 SharedID 的旧应用程序共享数据。

在不破坏所有现有安装的情况下,这将不再可能。

我更改了新应用程序的清单,添加了以下行: android:sharedUserId="com.myname.myoldapp" 其中 com.myname.myoldapp 是旧应用程序包的名称。但它不起作用。

如果您阅读上的文档android:sharedUserId,您会看到有人告诉您:“但是,如果两个或多个应用程序的此属性设置为相同的值,它们将共享相同的 ID”(强调我的)。由于您的旧应用程序没有android:sharedUserId,因此您无法将新应用程序设置为旧应用程序的android:sharedUserId值。

如何使用新应用访问旧应用数据?

使用Service. 或者一个ContentProvider. 或 Android 支持的任何其他形式的 IPC。旧应用程序需要公开一个基于 IPC 的 API,新应用程序可以使用该 API 来访问旧应用程序的数据。您可以使用自定义signature级别的权限来限制对这些 API 的访问仅限于您的应用程序。

于 2013-03-21T13:00:04.540 回答