Android:查看 SharedPreferences 文件?

标签 android preferences android-preferences

出于调试目的,我需要访问我的应用程序的共享首选项文件。据我所知,我应该在/data/... 中找到这个文件,但我无法通过缺少权限访问/data 文件夹。这是正常的吗?任何方式仍然可以访问该文件? (除了可能是从应用程序内部删除它?)手机没有root,我也不想root它。 感谢您的任何提示!

最佳答案

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

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

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

在您的 list 中设置

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());
    }
}

来源 One Two Three

关于Android:查看 SharedPreferences 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951418/

相关文章:

java - 从 Android 首选项设置铃声不起作用

android - android中的实时交通标志识别

android - 弹性和 ActionScript

android - 使用 ActionBar Sherlock 的首选项屏幕

java - win32从c++代码中读取java首选项

android - SwitchPreferences 多次调用 onPreferenceChange() 方法

java - 如何在 (mm :ss) format using editText?

Android Activity 开关暂时失去全屏

iphone - 打开 IOS 设置首选项

java - setOnPreferenceClickListener 帮助, Activity 启动时关闭