无法从其他Android应用中检索共享偏好设置

时间:2011-03-01 13:32:29

标签: android

我已经读过可以从我的应用程序外部检索共享首选项,我的意思是如果我在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);

但我只得到一个空对象,我做错了什么?我不是我的错。

提前致谢。

2 个答案:

答案 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)及以下,默认情况下在以后的版本中关闭。

getSharedPreferences