androidxamarinxamarin.formsandroid-device-monitor

Androidemulator - Access files in LocalApplicationData


I'm using xamarin forms to develop an Android app. I can save a file via

    var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), $"appsettiings.txt");
    var data = JsonConvert.SerializeObject(this);
    File.WriteAllText(fileName, data);

When I debug I can see that the file should be stored at

/data/user/0/<applicationame>/files/.local/share/appsettiings.txt

I like to see if the file is actually saved and what the content is. I opened the Android device monitor but the data folder was 'empty'. From some other SO case I took that I should but myself in root-mode by executing

C:\Program Files (x86)\Android\android-sdk\platform-tools>adb root

Now the data folder contains data and I can drill down up to the files folder, but that one seems to be empty.

When I run the app again and check in code if the file exists, it actually does.

Any further suggestions how to get access to that file from any tooling. I want to delete that file and run the app again.


Solution

  • You can use adb pull to copy the file to local machine and look at it content like this:

    adb root
    adb pull /data/user/0/<applicationame>/files/.local/share/appsettiings.txt [LOCAL_FOLDER]
    

    then you can use adb shell then rm -f to remove it, like this:

    adb shell
    su
    rm -f /data/user/0/<applicationame>/files/.local/share/appsettiings.txt 
    

    Since the file you are requesting is inside /data folder, you need to have the corresponding root priviliege to get it, so you need to do adb root before the adb pull command, and you need to do su before removing the file.