Ответ 1
Как сказал Хирен, вам понадобится проводник для просмотра вашего каталога. Если вы укоренены, я настоятельно рекомендую root explorer, иначе ES File Explorer - хороший выбор.
Я написал код для записи аудио и сохранить его в расположении файла ниже.
private String getFilename() {
String filepath = Environment.getExternalStorageDirectory().getPath();
File file = new File(filepath, AUDIO_RECORDER_FOLDER);
if (!file.exists()) {
file.mkdirs();
}
return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + file_exts[currentFormat]);
}
В Logcat, это дает мне расположение файла как
/storage/emulated/0/AudioRecorder/1436854479696.mp4
Я не могу найти это местоположение файла на моей SD-карте. Как получить доступ к локации?
Как сказал Хирен, вам понадобится проводник для просмотра вашего каталога. Если вы укоренены, я настоятельно рекомендую root explorer, иначе ES File Explorer - хороший выбор.
Мой Android 6.0 позволяет мне просматривать внутреннюю память без необходимости использования сторонних приложений. Я просто делаю это *:
* Слова могут не соответствовать стандартной английской версии, так как я просто свободно переводю их с португальского.
Примечание. По крайней мере, в моем телефоне /storage/emulated/0
не соответствует SD-карте, а встроенной памяти. Этот метод не работал для моей внешней карты, но я никогда не пробовал его с помощью другого телефона.
Надеюсь это поможет!
Также вы можете использовать Android Debug Bridge (adb) для копирования вашего файла с устройства Android в папку на вашем компьютере:
adb pull /storage/emulated/0/AudioRecorder/1436854479696.mp4 <folder_on_your_PC_e.g. c:/temp>
И вы можете скопировать с устройства всю папку AudioRecorder
:
adb pull /storage/emulated/0/AudioRecorder <folder_on_your_PC_e.g. c:/temp>
Подключите свое устройство и запустите adb shell
которая выведет на ваше устройство командную оболочку. У вас нет разрешения на чтение /storage/emulated/
но, поскольку вы знаете его в подкаталоге 0, просто перейдите cd/storage/emulated/0
и вы сможете оглядываться и взаимодействовать как аспект.
Примечание. Вы также можете использовать adb
беспроводным способом
Попробуй это
private String getFilename() {
String filepath = Environment.getExternalStorageDirectory().getPath();
File file = new File(filepath + "/AudioRecorder" );
if (!file.exists()) {
file.mkdirs();
}
return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + ".mp4");
}
В эмуляторе для просмотра этого файла нажмите "Настройки"> "Хранение"> "Другие"> "Android"> "данные"> com.companyname.textapp> file> Загрузить. Здесь textapp - это имя приложения, над которым вы работаете.
Здесь он находится в /mnt/shell/emulated/0
если вы используете Android-монитор устройства и эмулятор Android: я получил доступ к следующему пути: Data/Media/0/
Попробуйте
ftp://ip_my_s5:2221/mnt/sdcard/Pictures/Screenshots
которые указывают на /storage/emulated/0
В моем случае /storage/emulated/0/соответствует корневому пути моего устройства. Например, когда я снимаю фотографию с помощью приложения камеры по умолчанию для телефона, изображения сохраняются автоматически /store/emulated/0/DCIM/Camera/mypicname.jpeg
Например, предположим, что вы хотите сохранить свои фотографии в каталоге /Pictures, а именно в каталоге Pictures, которые существуют в корневом каталоге. Таким образом, вы используете приведенный ниже код.
File storageDir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES );
Если вы хотите сохранить изображения в каталоге DCIM или Downloads, дайте приведенные ниже аргументы методу Environment.getExternalStoragePublicDirectory(), показанному выше.
Environment.DIRECTORY_DCIM
Environment.DIRECTORY_Downloads
Затем укажите название изображения:
String imageFileName = "JPEG_" + timeStamp + "_";
Затем создайте объект файла, как показано ниже. Вы указываете суффикс как второй аргумент.
File image = File.createTempFile(
imageFileName, // prefix
".jpg", // suffix
storageDir // directory
);
Android рекомендует вызывать Environment.getExternalStorageDirectory.getPath()
вместо /sdcard/
в имени пути. Это возвращает основной общий/внешний каталог хранилища. Таким образом, если хранилище эмулируется, это вернет /storage/emulated/0
сохранит /storage/emulated/0
. Если вы изучите хранилище устройств с помощью проводника файлов, указанный каталог будет /mnt/sdcard
(подтвержден на Xperia Z2 под управлением Android 6).
Чтобы возобновить ваши снимки с /storage/emulated/0/, просто откройте файл 100Andro. Там вы увидите свои фотографии, хотя у вас может не быть доступа к ним в вашем pc explorer. Открывайте каждое изображение один за другим, продолжайте настройку (три точки...) и сохраните изображение. Он появится в файле android "Картинки", где вы также можете скопировать их с помощью своего проводника. Нет функции "сохранить все", однако это нужно делать один за другим, но это работает.
QT
https://productforums.google.com/forum/#!msg/nexus/WIcHUNQfRLU/ALpViG86AwAJ
Г-н Дорогие игрушки сказал: "Я удивлен, что эта проблема все еще появляется, поскольку она начала происходить еще в сотовое.
Таким образом, /storage/emulated/0/DCIM/Camera является той же папкой, что и обычная папка DCIM/Camera. Это просто символическая ссылка. Таким образом, файлы на самом деле находятся в правильном месте, у вас просто есть приложение, которое помещает плохие данные в базу данных MediaStore.
При доступе к файлам с вашего ПК вы фактически перечисляете базу данных MediaStorage для файлов. Его не тянет традиционные списки каталогов. Итак, что вы видите, зависит от того, что находится в этой базе данных и записей пути в базе данных. Файлы в базе данных, указывающие на эмулированные каталоги, не отображаются, поскольку предполагается, что они дублируются как их один и тот же физический каталог, что и ваш обычный DCIM/Camera. Что происходит, так это то, что некоторые плохо написанные сторонние приложения вставляют записи в базу данных с использованием /storage/emulated/0/DCIM/Camera path вместо правильного корневого пути к DCIM/Camera. Это означает, что служба MTP не может их видеть, когда вы подключены к компьютеру.
Обычно самый простой способ исправить проблему - просто очистить базы данных MediaStore, чтобы получить плохие записи из базы данных MediaStore и позволить системе переиндексировать файлы и поместить в базу данных правильные пути.
Settings-> приложения Нажмите 3-точечное меню в правом верхнем углу и выберите "Показать систему", "Сохранить носитель", "Выбрать", "Выбрать хранилище", затем "Очистить данные", "Найти внешние хранилища", "Выбрать", "Выбрать хранилище", "Очистить данные". Отключить телефон,, подождите, пока служба индексатора перестроит данные.
Когда вы закончите, файлы должны отображаться с правильным деревом каталогов и быть видимыми с ПК. В зависимости от количества файлов на телефоне может потребоваться 10-20 минут для восстановления базы данных мультимедиа, поскольку служба ходит по телефонным справочникам, получает метаданные, создает миниатюры и т.д.
Просмотр файлов на устройстве с помощью проводника устройств
https://developer.android.com/studio/debug/device-file-explorer
Как насчет Android 9 для Samsung Galaxy 10? Как я могу хранить или передавать медиа файлы на SD-карту? Как получить доступ к загруженным документам и просмотреть в автономном режиме? Я не могу найти свои загруженные документы в файлах эмулятора.
Использование команды//получить каталог файлов
Image image =new Image() { Source = file.Path };
затем в команде adb pull//путь файла изображения здесь