2017-08-10 65 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'我也試過了 –

相關問題