#android #xamarin #xamarin.forms #android-device-monitor
#Android #xamarin #xamarin.forms #android-устройство-монитор
Вопрос:
Я использую xamarin forms для разработки приложения для Android. Я могу сохранить файл через
var fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), $"appsettiings.txt");
var data = JsonConvert.SerializeObject(this);
File.WriteAllText(fileName, data);
При отладке я вижу, что файл должен храниться в
/data/user/0/<applicationame>/files/.local/share/appsettiings.txt
Мне нравится видеть, действительно ли файл сохранен и каково его содержимое. Я открыл монитор устройства Android, но папка с данными была «пустой». Из какого-то другого случая SO я взял, что я должен, но сам в корневом режиме, выполнив
C:Program Files (x86)Androidandroid-sdkplatform-tools>adb root
Теперь папка данных содержит данные, и я могу перейти к папке files, но она кажется пустой.
Когда я снова запускаю приложение и проверяю в коде, существует ли файл, он действительно существует.
Любые дополнительные предложения о том, как получить доступ к этому файлу из любого инструмента. Я хочу удалить этот файл и снова запустить приложение.
Ответ №1:
Вы можете использовать adb pull
для копирования файла на локальный компьютер и просмотра его содержимого следующим образом:
adb root
adb pull /data/user/0/<applicationame>/files/.local/share/appsettiings.txt [LOCAL_FOLDER]
затем вы можете использовать adb shell
then rm -f
, чтобы удалить его, вот так:
adb shell
su
rm -f /data/user/0/<applicationame>/files/.local/share/appsettiings.txt
Поскольку запрашиваемый файл находится внутри папки /data, вам необходимо иметь соответствующие права root для его получения, поэтому вам нужно выполнить adb root
перед adb pull
командой, и вам нужно сделать su
перед удалением файла.
Ответ №2:
Если я не ошибаюсь, если вы сохраните файл с вашим подходом, он должен существовать, как вы уже проверили с помощью метода .Exists.
Я не совсем уверен, вы просто пытаетесь прочитать содержимое из файла? Или вы хотите получить к нему доступ извне приложения?
Если вы хотите просто прочитать содержимое, вы можете получить к нему доступ с помощью
string content= File.ReadAllText(your file path);
и установите точку останова (F9) в следующей строке.
Комментарии:
1. Чтение и запись файла из приложения Xamarin работает нормально. Но для отладки я хотел бы открыть файл с помощью монитора устройства Android.