阅读另一个Android应用程序的共享偏好



我需要访问另一个应用程序的共享优先文件。(设备已扎根!(当前我似乎面临着权限问题。这是我运行的当前代码:

Context con = createPackageContext("com.sam.sample", CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPref = con.getSharedPreferences("namefile", MODE_PRIVATE);
Map data = sharedPref.getString("name", "");
Log.d("Name", "name:" + name);

运行此代码时,我会收到以下错误:

尝试读取首选项文件/data/data/com.sam.sample/shared_prefs/namefile.xml 未经许可

我也尝试运行su命令,但我不希望通知用户我想在XML文件上使用chmod 775读取访问。

任何帮助都将不胜感激。

在" com.sam.sample"中创建共享preference时要执行此操作。因此,如果您有" com.sam.sample"应用程序的代码,则应看起来像

下面
SharedPreferences prefs = getSharedPreferences("namefile",
                Context.MODE_WORLD_READABLE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("name", strShareValue);
        editor.commit();

还要注意,不建议将模式更改为context.mode_world_redable,因为它可能会导致安全孔。截至NOS,这将引发SecurityException。更多信息: -

理想情况下应使用content -provider。

例如,您的contentprovider的查询功能可以是

MatrixCursor cursor = new MatrixCursor(new String[] { "name" }, 1); cursor.addRow(new Object[] { readSharedPreference() }); return cursor;

相关内容

最新更新