阅读其他应用程序时错误的共享偏好参考

时间:2013-05-18 09:12:00

标签: android sharedpreferences

我有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);

有时我会得到正确的引用..但大部分时间都是第一个应用程序。

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

由于

2 个答案:

答案 0 :(得分:1)

Content Provider可以帮助您实现Example1 Example2 Example 3

要求Manifest中的权限导出和使用数据。更多信息参见示例

     <provider
        android:exported="true"
        android:name="<content provider>"
        android:authorities="<content provider authority>" >
    </provider>

答案 1 :(得分:0)

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

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

使用内容提供商

Content Provider便于访问中央数据存储或仓库,以允许跨不同应用程序的数据共享和数据操作。这是在同一设备中跨应用程序访问信息的唯一方法。

就像他们在Android系统中的内容提供商中构建的那样

  • 联系人

  • MediaStore

  • 书签

  • 设置等。

查看此图片Content Provider的工作原理(图片courtsey - http://vajjala-javapassion.blogspot.in/2011/08/getting-started-with-android-content.html

enter image description here

请参阅此图片,需要注意的要点:

  1. 内容提供商可以访问不同的数据源,例如database,File,Xml e.t.c。

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

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