首页 文章

SharedPreferences无法被其他应用程序访问吗?

提问于
浏览
1

我有一个用户登录到webservice(用户名密码)的应用程序 . 我需要将用户的用户名和密码存储在某处以自动登录(否则他们每次都必须输入用户名密码) .

我已将用户名密码存储在SharedPreferences中,如下所示:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = prefs.edit();
editor.put("username", "the username");
editor.put("password", "the password");
editor.commit();

如果我理解正确,那么共享prefs写入的实际文件无法从其他第三方应用程序访问,对吗?因此可以在这里存储用户名密码?

如果我将设备连接到DDMS,我看不到共享的prefs文件(好) . 如果我使用模拟器,我可以看到它们 .

谢谢

2 回答

  • 2

    它们通常不应该被其他应用程序访问,但是在root设备上,它们可以非常容易地访问 .

    您可能希望将字符串encrypt/decrypt作为商店并加载它们 .

  • 4

    那是正确的 . 尽管如此,该文件是一个常规的xml文件,可以被root电话中的任何文件浏览器访问,因此您应该加密数据 . 永远不要认为应用程序不会在root手机中使用 . 即使用户不这样做,手机也总是丢失/被盗并根植以提取信息 .

    要在评论中回答这个问题:

    要获取SharedPreferences实例(默认实例或任何自定义实例),您需要活动上下文,这是任何其他应用程序都无法访问的 .

相关问题