Android:查看SharedPreferences文件?

ste*_*wpf 20 android preferences android-preferences

出于调试目的,我需要访问我的应用程序的共享首选项文件.据我所知,我应该在/ data/...中找到这个文件但是我无法访问/ data文件夹以查看缺少的权限.这是正常的吗?还有什么方法可以访问该文件吗?(除了可能从应用程序内部播放它?)手机没有root,我也不想根它.谢谢你的提示!

snc*_*tln 17

我过去遇到过这个问题(没有文件系统的root权限,但需要访问应用程序数据文件夹).如果您没有root设备或开发人员设备(如ADP1),则可以尝试在模拟器上运行应用程序,然后从eclipse或DDMS中的"文件资源管理器"访问文件.

编辑#1:尝试使用sharedPreferences 的getAll函数并将其保存到文件中,我将看看是否可以将样本放在一起.

编辑#2:示例代码,从网络上的随机样本创建,可能不是最好的方法,但我测试了它确实有效.它将文件写入您的SD卡的根目录.确保你有

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
Run Code Online (Sandbox Code Playgroud)

在你的清单中设置

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<String,?> prefsMap = prefs.getAll();

        for(Map.Entry<String,?> 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

来源 两个