我以前遇到这个问题(在文件系统上没有root权限,但需要访问应用程序数据文件夹)。如果您没有rootd设备或开发者设备(如ADP1),那么您可以尝试在仿真器上运行应用程序,然后从eclipse或DDMS中的“文件资源管理器”中访问文件。
编辑#1:
尝试使用sharedPreferences的getAll函数并将其保存到文件中,我将看到是否可以将样本放在一起。
编辑#2:
示例代码,从网络上的随机样本创建,可能不是最好的方法,但我测试了它,它的工作。它将文件写入您的SD卡的根目录。确保你有
在你的清单中
private void saveSharedPreferences()
{
// create some junk data to populate the shared preferences
SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
SharedPreferences.Editor prefEdit = prefs.edit();
prefEdit.putBoolean("SomeBooleanValue_True", true);
prefEdit.putInt("SomeIntValue_100", 100);
prefEdit.putFloat("SomeFloatValue_1.11", 1.11f);
prefEdit.putString("SomeStringValue_Unicorns", "Unicorns");
prefEdit.commit();
// BEGIN EXAMPLE
File myPath = new File(Environment.getExternalStorageDirectory().toString());
File myFile = new File(myPath, "MySharedPreferences");
try
{
FileWriter fw = new FileWriter(myFile);
PrintWriter pw = new PrintWriter(fw);
Map prefsMap = prefs.getAll();
for(Map.Entry entry : prefsMap.entrySet())
{
pw.println(entry.getKey() + ": " + entry.getValue().toString());
}
pw.close();
fw.close();
}
catch (Exception e)
{
// what a terrible failure...
Log.wtf(getClass().getName(), e.toString());
}
}