在Android 4.3上測試。我有兩個應用程序,com.my.app.first
和com.my.app.second
。在我的活動中,我想閱讀其他應用程序的偏好設置。我選擇使用兩個我的應用程序相同的用戶ID:如何閱讀其他應用程序的SharedPreferences(相同的用戶ID)?
android:sharedUserId="com.my.app"
我總是加載我的偏好是這樣的:現在
prefs = getSharedPreferences("MyAppPreferences", Context.MODE_PRIVATE);
,在我第二應用我做到以下幾點:
try {
Context context = createPackageContext("com.my.app.first", Context.CONTEXT_IGNORE_SECURITY);
// context.getPackageName() does indeed return "com.my.app.first"
// Note: Context.MODE_WORLD_READABLE makes no difference here!
prefs = context.getSharedPreferences("MyAppPreferences", Context.MODE_PRIVATE);
}
prefs.mFile
錯誤地指向/data/data/com.my.app.second/shared_prefs/MyAppPreferences.xml
。
顯然,即使我使用其他應用程序的上下文,對getSharedPreferences的調用返回當前應用程序的首選項。我究竟做錯了什麼?請幫忙!
? – JimBoyHac
沒有。由於使用了相同的'sharedUserId',所以不需要它。 – l33t