我已经读过可以从我的应用程序外部检索共享首选项,我的意思是如果我在X应用程序中保存首选项我可以从Y应用程序检索它,事情是,这对我不起作用,问题是怎么做?这是我的代码,我不知道我哪里出错:
final String APP = "Test";
final String USER_ID = "User Id";
String myId;
SharedPreferences prefs = getSharedPreferences(APP, MODE_PRIVATE);
if (prefs.getString(USER_ID, null) == null){
if(phoneNumber != null){
myId = phoneNumber;
prefs.edit().putString(USER_ID, myId).commit();
}
if(deviceId != null){
myId = deviceId;
prefs.edit().putString(USER_ID, myId).commit();
}else{
myId = randomId.toString();
prefs.edit().putString(USER_ID, myId).commit();
}
}
然后我尝试从不同的应用程序中检索此首选项,如下所示:
final String APP = "Test";
final String USER_ID = "User Id";
SharedPreferences sp = getSharedPreferences(APP, MODE_PRIVATE);
String s = sp.getString(USER_ID, null);
但我只得到一个空对象,我做错了什么?我不是我的错。
提前致谢。
答案 0 :(得分:2)
我其实刚刚看到这个,但最终并不需要它。
This指南看起来很不错。
答案 1 :(得分:1)
您使用MODE_PRIVATE
代替MODE_WORLD_READABLE
公共抽象SharedPreferences getSharedPreferences(String name,int 模式)
[...] 模式操作模式。使用0 或者MODE_PRIVATE作为默认值 操作,MODE_WORLD_READABLE和 MODE_WORLD_WRITEABLE可以控制 权限。有点 如果,也可以使用MODE_MULTI_PROCESS 多个进程正在改变 相同的SharedPreferences文件。 MODE_MULTI_PROCESS始终打开 针对姜饼的应用程序(Android 2.3)及以下,默认情况下在以后的版本中关闭。