Android:如何删除另一个包中的共享首选项

Gra*_*ant 6 android android-emulator android-intent

在我的Android应用程序中,我编码读取另一个Android应用程序的共享数据,然后从共享首选项中删除该数据.我的代码如下:

try {

     con = createPackageContext("com.testapp.ws", 0);
     SharedPreferences pref = con.getSharedPreferences("demopref", Context.MODE_PRIVATE);
     ipAdr = pref.getString("demostring", "No Value");
     pref.edit().remove("demopref").commit();
   }
Run Code Online (Sandbox Code Playgroud)

这显示以下错误:

06-12 11:52:07.400: E/ApplicationContext(3587): Couldn't rename file /data/data/com.testapp.ws/shared_prefs/demopref.xml to backup file /data/data/com.testapp.ws/shared_prefs/demopref.xml.bak
Run Code Online (Sandbox Code Playgroud)

我在我的其他应用程序中使用此方法来生成共享数据

 public void shareData(){
    String strShareValue = ip;
    SharedPreferences prefs = getSharedPreferences("demopref",Context.MODE_WORLD_READABLE);
    SharedPreferences.Editor editor = prefs.edit();
    editor.putString("demostring", strShareValue);
    editor.commit();
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?有没有什么可以添加清单文件?

谢谢!

Kaz*_*ara 1

您需要使用MODE_WORLD_READABLE而不是MODE_PRIVATE. 阅读文档以获取更多信息。

这是一个教程,可以进一步检查您是否还有其他错误。