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