2017-08-10 141 views
0

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

//设置数据

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 

但它无法正常工作。现在做什么?

+0

哪里是你的MyPref' – akhilesh0707

+0

private final String MyPref =“设置”; //你添加了一个常量 –

+0

'android:sharedUserId'?这两个应用的清单文件。 – akhilesh0707

回答

0

在读取字由第一应用程序共享可读数据,我们应该创建共享对象PREF喜欢 -

在第二应用更换

getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE); 

getSharedPreferences("PREF_NAME", Context.MODE_MULTI_PROCESS); 

以获取更新的值在第二个应用程序。

+0

Context.MODE_MULTI_PROCESS也没有工作 –

+0

@alam做您在清单 – akhilesh0707

+0

中尝试CONTEXT_IGNORE_SECURITY和'android:sharedUserId'我也试过了 –

相关问题