我正在尝试将共享首选项从一个应用程序复制到另一个应用程序。我在清单中使用相同的密钥进行签名和相同的sharedUserID。我有以下代码:
Context lite = pMainActivity.createPackageContext("com.my.other.packagename", 0);
SharedPreferences otherSharedPreferences = lite.getSharedPreferences(PREFS_PRIVATE, Context.MODE_WORLD_READABLE);
String whatever = otherSharedPreferences.getString("Sound", "none");
SharedPreferences thisSharedPreferences = pMainActivity.getSharedPreferences(PREFS_PRIVATE, Context.MODE_WORLD_READABLE);
whatever = otherSharedPreferences.getString("Sound", "none");
我可以从其他包读取值没有问题UNTIL为当前包创建一个完全独立的ShredPrefrences对象(“SharedPreferences thisSharedPreferences = pMainActivity.getSharedPreferences(PREFS_PRIVATE,Context.MODE_WORLD_READABLE); “)。
从那时起,otherSharedPreferences的值变为null。没有错误,价值似乎消失了。我无法弄清楚这两个物体之间的关系是什么,因为在我看来,它们看起来完全是分开的和无关的。
如果有人知道发生什么事,我们将不胜感激。
的Si