从外部访问“共享首选项” /将值存储到新文件中并从外部访问

时间:2019-07-18 15:35:33

标签: file io xamarin.android storage read-write

我有以下两种方法,我正在使用它们在本地存储特殊值,并能够在应用程序重新启动时访问它:

(在本地存储值:)

private void SaveSet(string key, string value)
{
    ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this);

    ISharedPreferencesEditor prefEditor = prefs.Edit();

    prefEditor.PutString(key, value);
    // editor.Commit();    // applies changes synchronously on older APIs
    prefEditor.Apply();        // applies changes asynchronously on newer APIs
}

(再次阅读:)

private string RetrieveSet(string key)
{
    ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this);
    return prefs.GetString(key, null);
}

这很好用。现在可以从外部访问和编辑此共享首选项了吗?不幸的是,在文件夹中搜索时找不到任何文件

Phone\Android\data\com.<company_name>.<application_name>\files

也没有其他地方。将手机连接到它后,我想要/尝试从我的计算机编辑此值。这可能吗?

或者:有人可以教我如何在上述给定路径中创建一个新文件,以编程方式写入/读取该文件,以及如何将其保存在该文件中,即使应用程序已关闭/再次启动?这样我就可以用计算机编辑该文件了吗?

我使用以下代码尝试了此操作,但不幸的是,它不起作用/未创建文件,或者至少我在上面的给定路径中看不到它:

//"This code snippet is one example of writing an integer to a UTF-8 text file to the internal storage directory of an application:"
public void SaveValueIntoNewFile(int value)
{
    var backingFile = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "newFile.txt");
    using (var writer = System.IO.File.CreateText(backingFile))
    {
        writer.WriteLine(value.ToString());
    }
}

对于每个答案都会非常高兴,在此先感谢您,并致以最诚挚的问候

2 个答案:

答案 0 :(得分:0)

您要寻找的是Android为使用默认PreferenceManager的应用程序存储“共享首选项”文件的地方。

我会参考this SO post,它可以很好地回答您的问题

  

SharedPreferences存储在应用程序数据文件夹中的xml文件中,   即

     

/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml

     

或默认首选项位于:

     

/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml

     

在运行时添加的SharedPreferences不存储在Eclipse中   项目。

     

注意:访问/ data / data /需要超级用户   特权

答案 1 :(得分:0)

一种简单的方法是使用Android Device Monotor,您可以通过单击Tools-> android-> Android Device Monotor...来打开它 例如: enter image description here

设备中的路径如下:

 /data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml

我们注意到图片的右上角有三个按钮。 第一个用于Pull a file from the device,第二个用于Push a file onto the device,最后一个用于删除preferences.xml文件。

因此,我们可以将preferences.xml文件从当前设备拉到我们的计算机上并根据需要对其进行编辑,然后将更新的preferences.xml再次推到该文件夹​​中,然后我们将获得preferences.xml文件的值。