0

我有 2 个Application,两者都有一个单独sharedpref的同名。

我想value从其他Application sharedpref人那里阅读

Mycontxt = appcontext.create package context(otherapppackagename, context.mode_private);

Shared preference otherappshpref = mycontext.getshared preference("prefname",context.mode_private);

有时我会得到正确的参考……但大多数时候它是针对第一个应用程序的。

我尝试了许多不同的方法,但问题仍然存在。谁能告诉我一种方法吗?

谢谢

4

2 回答 2

1

Content Provider可以帮助您实现此 示例 1 示例 2 示例 3

需要在 Menifest 中获得许可才能导出和使用数据。更多信息参见示例

     <provider
        android:exported="true"
        android:name="<content provider>"
        android:authorities="<content provider authority>" >
    </provider>
于 2013-05-18T09:17:45.663 回答
0

如果要读取其他应用程序的数据SharedPrefrences将不正确

共享首选项- 共享首选项用于存储单个应用程序或移动设备中跨应用程序的用户首选项。它们通常是上下文可访问的名称-值对。小路。

使用内容提供者

内容提供者有助于访问中央数据存储或仓库,以允许跨不同应用程序进行数据共享和数据操作。这些是在同一设备中跨应用程序访问信息的唯一方法。

就像他们内置在 android 系统中的 Content Providers 一样

  • 联系人

  • 媒体商店

  • 书签

  • 设置等等。

看这张图片内容提供者是如何工作的(图片礼貌——http: //vajjala-javapassion.blogspot.in/2011/08/getting-started-with-android-content.html

在此处输入图像描述

看这张图,注意点:

  1. 内容提供者可以访问不同的数据源,如数据库、文件、Xml 等

  2. 来自不同应用程序的活动正在使用此内容提供程序。

  3. Content Provider 是数据资源和不同应用程序之间的桥梁。

于 2013-05-18T09:16:16.160 回答