使用共享首选项在具有相同包名称的两个风味应用之间共享数据

时间:2017-08-10 12:10:59

标签: android

我有一个使用不同构建变体(风味)的应用程序,现在我想在这些风味应用程序(最终用户的不同应用程序)之间共享数据。现在我的问题是,我如何使用共享首选项在风味的应用程序之间共享一些数据,因为清单文件中只提到了一个包名,而且一个包对所有风味的应用程序都有效。我尝试了以下方法,但未能共享数据。

//设置数据

SharedPreferences settings = getSharedPreferences(MyPref, Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("UserEmail", m_email);
editor.putString("UserPass", m_pass);
editor.putString("LoggedUserName", m_statusData);
editor.commit(); 

//获取数据

Context con = getApplicationContext().createPackageContext("my_packagename", 0);
SharedPreferences pref = con.getSharedPreferences(MyPref, Context.MODE_PRIVATE);
EmailId = pref.getString("UserEmail", email);//got always null
Password = pref.getString("UserPass", Password);//got always null

但它不起作用。现在该怎么办?

1 个答案:

答案 0 :(得分:0)

在阅读第一个应用程序共享的Word可读数据时,我们应该创建共享的pref对象,如 -

更换

getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE);

getSharedPreferences("PREF_NAME", Context.MODE_MULTI_PROCESS);

在第二个应用中获取第二个应用中的更新值。