Как получить доступ / хранение / эмуляция/0/
Я написал код для записи звука и сохранения ti ниже местоположения файла.
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 он дает мне местоположение файла как
/ хранение / эмуляция/0/AudioRecorder / 1436854479696.mp4
Я не могу найти эту папку на SD-карте. Как получить доступ к папке?
15 ответов
Как сказал Хирен, вам понадобится проводник, чтобы увидеть ваш каталог. Если вы коренитесь, я настоятельно рекомендую root explorer, иначе ES File Explorer-хороший выбор.
нет необходимости в сторонних приложениях
мой Android 6.0 позволяет мне просматривать память стажера без необходимости сторонних приложений. Я просто делаю это*:
- "настройки"
- "хранение и USB"
- "стажер"
- [пусть он загрузится немного...]
- [прокрутите вниз]
- "обзор"
* слова могут не соответствовать стандартной английской версии одни, поскольку я просто свободно перевожу их с португальского.
Примечание: по крайней мере в моем телефоне, /storage/emulated/0
не соответствует SD-карте, но интерн. Этот метод не работал для моей внешней карты, но я никогда не пробовал его с другим телефоном.
надеюсь, что это помогает!
также вы можете использовать мост отладки Android (adb) чтобы скопировать файл с устройства Android в папку на вашем ПК:
adb pull /storage/emulated/0/AudioRecorder/1436854479696.mp4 <folder_on_your_PC_e.g. c:/temp>
и вы можете скопировать с устройства всего :
adb pull /storage/emulated/0/AudioRecorder <folder_on_your_PC_e.g. c:/temp>
подключите устройство и запустите adb shell
Что даст вам командную оболочку на вашем устройстве. У вас нет разрешения читать /storage/emulated/
но так как вы знаете, что это в подкаталоге 0 просто go cd /storage/emulated/0
и вы сможете смотреть вокруг и взаимодействовать как aspected.
Примечание: можно использовать 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.имя_компании.textapp>файл>загрузить. Здесь textapp-это имя приложения, над которым вы работаете.
попробуйте из
ftp://ip_my_s5:2221/mnt/sdcard/Pictures/Screenshots
, которые указывают на /storage/emulated/0
чтобы восстановить ваши фотографии из / storage / emulated/0 / просто откройте файл 100Andro..там вы увидите свои фотографии, хотя у вас может не быть доступа к ним в вашем PC explorer. Там открываем каждую картинку одну за другой, продолжаем настройку (три точки..) и сохранить изображение. Он будет отображаться в файле android "картинки", откуда вы также можете скопировать их с помощью проводника. Нет функции "сохранить все", однако она должна выполняться один за другим, но она работает.
QT
в моем случае, / storage / emulated/0 / соответствует корневому пути моего устройства. Например, когда я делаю снимок с помощью приложения камеры по умолчанию моего телефона, изображения сохраняются автоматически / store / emulated/0 / DCIM / Camera / mypicname.в формате JPEG
например, предположим, что вы хотите сохранить свои фотографии в каталоге / Pictures, а именно в каталоге Pictures, который существует в корневом каталоге. Таким образом, вы используете приведенный ниже код.
File storageDir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES );
если вы хотите сохраните изображения в каталоге DCIM или Downloads, приведите приведенные ниже аргументы для среды.getExternalStoragePublicDirectory() метод, показанный выше.
Environment.DIRECTORY_DCIM
Environment.DIRECTORY_Downloads
затем укажите свое имя изображения:
String imageFileName = "JPEG_" + timeStamp + "_";
затем создайте объект file, как показано ниже. Суффикс указывается в качестве 2-го аргумента.
File image = File.createTempFile(
imageFileName, // prefix
".jpg", // suffix
storageDir // directory
);
https://productforums.google.com/forum/#!msg/nexus/WIcHUNQfRLU/ALpViG86AwAJ
г-н дорогие игрушки сказал: Я поражен, что эта проблема все еще появляется, поскольку она начала происходить еще в Honeycomb.
Итак, /storage / emulated/0 / DCIM / Camera-это та же папка, что и ваша обычная папка DCIM/Camera. Его просто симлинк. Таким образом, файлы находятся в правильном месте, у вас просто есть приложение, которое помещает плохие данные в базу данных MediaStore.
при доступе к файлам с вашего ПК вы фактически перечисляете базу данных MediaStorage для файлов. Его не тянет традиционные списки каталогов. То, что вы видите, основано на том, что находится в этой базе данных и записях пути в базе данных. Файлы в базе данных, указывающие на эмулированные каталоги, не отображаются, поскольку они считаются дубликатами, поскольку их физический каталог совпадает с обычным DCIM/Camera. Что происходит, так это то, что некоторые плохо написанные сторонние приложения вставляем записи в базу данных с/storage/emulated/0/DCIM / Camera path вместо правильного корневого пути к DCIM / Camera. Это означает, что служба MTP не может видеть их, когда вы подключены к компьютеру.
обычно самый простой способ решить проблему - просто очистить базы данных MediaStore, чтобы получить плохие записи из базы данных MediaStore и позволить системе переиндексировать файлы и поместить в базу данных с правильными путями.
Настройки->Приложения Удар 3 точечное меню в правом верхнем углу и выберите Показать систему Найдите хранилище носителей, выберите его, выберите Хранилище, затем очистите данные Найдите внешнее хранилище, выберите его, выберите Хранилище, затем очистите данные Выключите телефон, снова включите телефон, подождите, пока служба индексатора восстановит данные.
когда вы закончите, файлы должны отображаться с соответствующим деревом каталогов и быть видны с ПК. В зависимости от количества файлов на телефоне восстановление базы данных мультимедиа в качестве службы может занять 10-20 минут ходит телефонных справочников, получение мета-данных, создания эскизов и др.
Android рекомендует вам позвонить Environment.getExternalStorageDirectory.getPath()
вместо того, чтобы хардкодить /sdcard/
в имя пути. Это возвращает основной каталог общего / внешнего хранилища. Таким образом, если хранилище эмулируется, это вернет /storage/emulated/0
. Если вы исследуете хранилище устройств с помощью проводника файлов, указанный каталог будет /mnt/sdcard
(подтверждено на Xperia Z2 под управлением Android 6).
просмотр файлов на устройстве с помощью Device File Explorer
https://developer.android.com/studio/debug/device-file-explorer
С помощью команды // получить каталог файлов
Image image =new Image() { Source = file.Path };
затем в команду adb pull / / путь к файлу изображения здесь