Перейти к содержимому

Как переименовать sd карту на андроид

  • автор:

Переименовать файлы на SD карте. Андроид приложение

Никак не получается переименовать файл на SD карте из своего приложения. Устройство хуавей андроид 8. Разрешения на запись и чтение есть. Использую такую форму:

oldfile.renameTo(newfile) 

Плюс ко всему прочему проверка:

oldfile.canWrite(); 

возвращает false. Уточню, файлы расположенные на устройстве спокойно переименывает, проблемы только с картой.

Отслеживать
задан 15 янв 2020 в 19:08
636 4 4 серебряных знака 11 11 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Начиная с версии Android 4.4 приложениям запрещен доступ к редактированию содержимого SD карты через класс File . Вместо этого предлагается использовать Storage Access Framework. Storage Access Framework умеет работать с SD картой начиная с Android 5.0 (на 4.4 редактировать содержимое SD карты официально нельзя). Можно использовать Intent.Intent.ACTION_OPEN_DOCUMENT_TREE чтобы дать пользователю выбрать папку:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); startActivityForResult(intent, REQUEST_CODE); 

Результат выбора придет в onActivityResult . Сначала можно проверить, действительно ли пользователь выбрал нужную папку. Для этого можно вручную соорудить tree Uri из абсолютного пути файла и потом проверить, действительно ли в интенте пришел этот tree Uri. Потом нужно получить разрешение на работу с этой папкой через getContentResolver().takePersistableUriPermssion() и потом можно использовать класс DocumentFile чтобы получить список файлов в папке и класс DocumentsContract , чтобы переименовать требуемый файл:

@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) < if(requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK && data!= null && data.getData() != null)< Uri treeUri = data.getData(); int takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION; getContentResolver().takePersistableUriPermission(treeUri, takeFlags); DocumentFile folder = DocumentFile.fromTreeUri(this, treeUri); DocumentFile fileToRename = folder.listFiles()[0]; try< DocumentsContract.renameDocument(getContentResolver(), fileToRename.getUri(), "top.txd"); >catch(FileNotFoundException exception) < >getContentResolver().releasePersistableUriPermission(treeUri, takeFlags); > else < super.onActivityResult(requestCode, resultCode, data); >> 

Важное уточнение: в следующей версии Android 11 доступ даже к внутреннему хранилищу через File будет закрыт. Придется использовать Storage Access Framework и для внутреннего хранилища.

Можно ли изменить имя microSD/SD карты без форматирования?

Можно ли изменить имя microSD/SD карты без форматирования? Покажу на этом примере /media/user/2FB3-5C08 как изменить это значение 2FB3-5C08 на то которое нужно? Если это можно сделать только с форматированием так и напишите, вопрос будет решён. Как менять UUID шестнадцатизначный знаю а этот идентификатор не умею, подскажите кто в курсе. И кстати, как этот идентификатор 2FB3-5C08 называется?

MRX256 ★
04.01.20 02:06:13 MSK

Можно. gparted -> правой мышкой по разделу -> дальше интуитивно понятно.

rmu ★★
( 04.01.20 02:18:23 MSK )
anonymous
( 04.01.20 02:19:39 MSK )
Ответ на: комментарий от rmu 04.01.20 02:18:23 MSK

Можно. gparted -> правой мышкой по разделу -> дальше интуитивно понятно.

Нажал правой кнопкой, вероятно надо щелкнуть на «изменить имя раздела» но у меня эта функция не активна. Как быть?

MRX256 ★
( 04.01.20 02:23:26 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 02:23:26 MSK
anonymous
( 04.01.20 02:25:34 MSK )
Ответ на: комментарий от anonymous 04.01.20 02:25:34 MSK

Отмонтировал и по прежнему кнопка не активна.

MRX256 ★
( 04.01.20 02:28:49 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 02:28:49 MSK

А какая файловая система на разделе?

anonymous
( 04.01.20 02:33:19 MSK )
Ответ на: комментарий от MRX256 04.01.20 02:28:49 MSK

Утилиты может нужны, типа ext2label, ntfslabel, mlabel и так далее для полноценной работы, но может ты другое спрашиваешь, чем просто изменение label

One ★★★★★
( 04.01.20 02:34:30 MSK )
Ответ на: комментарий от anonymous 04.01.20 02:33:19 MSK

А какая файловая система на разделе?

MRX256 ★
( 04.01.20 02:34:41 MSK ) автор топика
Ответ на: комментарий от anonymous 04.01.20 02:33:19 MSK

А какая файловая система на разделе?

Кстати, файловую систему можно сменить без форматирования MicroSD/SD карты?

MRX256 ★
( 04.01.20 02:35:40 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 02:35:40 MSK

Нет нельзя, ты точно label(метка в русской локализации) менять пытаешься?

anonymous
( 04.01.20 02:38:56 MSK )
Ответ на: комментарий от anonymous 04.01.20 02:38:56 MSK

ты точно label(метка в русской локализации) менять пытаешься?

MRX256 ★
( 04.01.20 02:43:08 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 02:43:08 MSK

Проверь наличие mtools, https://www.archlinux.org/packages/extra/x86_64/mtools/ оно опционально, мог gparted не подтянуть

One ★★★★★
( 04.01.20 02:44:35 MSK )
Ответ на: комментарий от anonymous 04.01.20 02:33:19 MSK

А какая файловая система на разделе?

А файловая система играет роль для изменения этого идентификатора?

MRX256 ★
( 04.01.20 02:45:58 MSK ) автор топика
Ответ на: комментарий от One 04.01.20 02:44:35 MSK

Бесконечно благодарен за ссылку, но к сожалению я там ничего не понял.

MRX256 ★
( 04.01.20 02:47:13 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 02:45:58 MSK

Да для некоторых файловых надо доустанавливать утилиты для работы с ними. Сверху товарищ подсказал как называется для фат

anonymous
( 04.01.20 02:49:35 MSK )
Ответ на: комментарий от MRX256 04.01.20 02:47:13 MSK

Надо проверить установлен ли у тебя этот пакет. В установка удаление программ или что у тебя там вбиваешь в поиск и смотришь что установлено

anonymous
( 04.01.20 02:51:25 MSK )
Ответ на: комментарий от anonymous 04.01.20 02:49:35 MSK

Да для некоторых файловых надо доустанавливать утилиты для работы с ними. Сверху товарищ подсказал как называется для фат

Хоршо, но только я не понял что именно надо доустановить конкретно мне с моим фат?

MRX256 ★
( 04.01.20 02:52:32 MSK ) автор топика
Ответ на: комментарий от anonymous 04.01.20 02:51:25 MSK

Лучше скажи какой у тебя дистр подскажут точнее

anonymous
( 04.01.20 02:53:03 MSK )
Ответ на: комментарий от MRX256 04.01.20 02:52:32 MSK

В разных дистрах по разному может пакет называться

anonymous
( 04.01.20 02:54:18 MSK )

Чота уже третья серия содомии с дохлым картридером пошла.

K50
( 04.01.20 02:55:55 MSK )
Ответ на: комментарий от anonymous 04.01.20 02:53:03 MSK

Лучше скажи какой у тебя дистр подскажут точнее

У меня Дебиан, я установил только что mtools это оно?

MRX256 ★
( 04.01.20 02:56:02 MSK ) автор топика
Ответ на: комментарий от K50 04.01.20 02:55:55 MSK

Чота уже третья серия содомии с дохлым картридером пошла.

А ты наблюдательный )) Это финальная затея уже.

MRX256 ★
( 04.01.20 02:56:56 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 02:56:02 MSK

dosfstools еще и возможно перезагрузиться прийдется

anonymous
( 04.01.20 02:59:25 MSK )
Ответ на: комментарий от anonymous 04.01.20 02:59:25 MSK

dosfstools еще и возможно перезагрузиться прийдется

dosfstools уже установлен. Посмотри, пожалуйста еще раз тот же скриншот что и ранее, вот он https://d.radikal.ru/d22/2001/3e/7e4eb82adee6.png и подскажи какую кнопку нажать, у меня активных кнопок стало больше, но не все.

MRX256 ★
( 04.01.20 03:01:32 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 03:01:32 MSK

Установить метку,но хз почему не активна

anonymous
( 04.01.20 03:05:39 MSK )
Ответ на: комментарий от anonymous 04.01.20 03:05:39 MSK

Установить метку,но хз почему не активна

А тип раздела, в моем случае W95 FAT32 (LBA) (Загрузочный) имеет значение?

MRX256 ★
( 04.01.20 03:13:06 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 03:13:06 MSK

Это если какой то программой делал загрузочную флешку, то бывает что не позволяет

anonymous
( 04.01.20 03:19:53 MSK )
Ответ на: комментарий от anonymous 04.01.20 03:19:53 MSK

Это если какой то программой делал загрузочную флешку, то бывает что не позволяет

Последний раз карта форматировалась в смартфоне.

MRX256 ★
( 04.01.20 03:22:23 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 03:22:23 MSK

Откуда тогда загрузочый флаг? Попробуй убрать флаги. Нет возможности слить инфу и пересоздать таблицу раделов?

anonymous
( 04.01.20 03:28:50 MSK )
Ответ на: комментарий от MRX256 04.01.20 02:35:40 MSK

Кстати, файловую систему можно сменить без форматирования MicroSD/SD карты?

А ты понимаешь что такое файловая система и форматирование?

Tanger ★★★★★
( 04.01.20 03:42:09 MSK )
anonymous
( 04.01.20 04:55:47 MSK )
Ответ на: комментарий от anonymous 04.01.20 03:28:50 MSK

Откуда тогда загрузочый флаг? Попробуй убрать флаги.

Убрал флаги, не помогло.

Нет возможности слить инфу и пересоздать таблицу раделов?

Это крайняя мера за которую скорее всего не возьмусь.

MRX256 ★
( 04.01.20 13:38:30 MSK ) автор топика
Ответ на: комментарий от anonymous 04.01.20 02:54:18 MSK

В разных дистрах по разному может пакет называться

Вспомнил что рядом есть live дистрибутив Xubuntu, загрузил его, так из коробки есть Gparted но ситуация такая же как и в Debian, кнопки не активны. Может подскажешь как этот пакет называется для Xubuntu? Попробую в live режиме это дело сделать.

MRX256 ★
( 04.01.20 13:40:14 MSK ) автор топика
Ответ на: комментарий от MRX256 04.01.20 13:40:14 MSK

Может подскажешь как этот пакет называется для Xubuntu?

Ё-маё! Ты же fdisk -ом пользовался, когда показывал, что ядро видит твою флеху. Ну так пересоздай им разделы!

anonymous
( 04.01.20 13:53:52 MSK )
Ответ на: комментарий от anonymous 04.01.20 13:53:52 MSK

Так он не пересоздать хочет , а метку разделу задать

anonymous
( 04.01.20 13:57:35 MSK )

Гляньте на вывод lsusb , полагаю, там будет строчка, содержащая 2fb3:5c08. Если так, то можно почитать
https://manpages.debian.org/stretch/udisks2/udisks.8.en.html
про /etc/udisks2/IDENTIFIER.conf и про то, что туда можно вписать.

Возможно, при наличии метки раздела, она будет использоваться для точки монтирования и без посторонних действий. Посмотреть текущую метку и поставить новую на разделе FAT можно, например, так:

sudo fatlabel /dev/sdb1 sudo fatlabel /dev/sdb1 MY_FLASH 

PS. fatlabel может называться (раньше назывался) dosfslabel.

bormant ★★★★★
( 04.01.20 13:57:55 MSK )
Последнее исправление: bormant 04.01.20 14:06:37 MSK (всего исправлений: 3)

Ответ на: комментарий от anonymous 04.01.20 13:57:35 MSK

Так он не пересоздать хочет , а метку разделу задать

Как переименовать sd карту на андроиде?

Перепрошил телефон на новый андроид, теперь имя карты памяти состоит из какой-то белиберды.
Как переименовать карту?
Как открыть редактор реестра на android?

Голосование за лучший ответ

А никак. Это же Линукс (Unix). Там нет дисков как в Windows на компе. Ты можешь переименовать только название папок, которые обозначают диски. Для этого тебе нужны Root-права + нормальный файловый менеджер, типа «FX Explorer» или «ES Explorer». Там открывай любые файлы и папки, и переименовывай как хочешь.

На Андроиде можно только стереть уже имеющееся имя путём форматирования флешки или SD-карты штатным способом, если таковой имеется. При форматировании стирается всё, учтите это!

Как sd карту сделать основной памятью телефона

Как sd карту сделать основной памятью смартфона или планшета

Если у Вас в телефоне или планшете мало памяти, а Вы хотите, чтобы техника работала быстро и качественно – установите дополнительную sd карту памяти.

Но этим не обойтись ,важно так же знать как sd карту сделать основной памятью. То есть , сделать так, чтобы все документы и файлы телефона сохранялись на съемном носителе, не занимая при этом основную память телефона.

Маленький совет – помните, чем больше памяти будет на флешке – тем лучше. Процессор телефона не будет «подвисать» и тормозить всю работу устройства.

Так же перед тем, как делать sd карту сделать основной памятью своего телефона, его нужно правильно подготовить к этой операции. Минимальное условие – установить для работы бесплатную программу «Total Commander», скачать которую можно на Play Market.

Учтите, что после того, как Вы сделаете sd карту основной памятью, у Вас не будут запускатся приложения, которые Вы перенесли. По этому перед тем, как начать установку карты нужно или переместить приложения на внутреннею память телефона или удалить их.

Дальше – по самой установке. Первое, что необходимо сделать – запустить «Total Commander»или другой менеджер файлов и зайти в корень файловой системы под папкой с названием «etc», в конце списка Вы должны найти фал с названием «vold.fstab» и выбираем функцию редактировать файл.

В отрытом файле перед пользователем появиться много букв и символов, среди которых нам нужно будет выделить самое необходимое после строчки ##example of a standard sdcard найти ряд dev_mounth sdcard и там в верхней строчке будет писать sdcard1 ,а в следующей sdcard0 или sdcard2. Ваша главная задача заменить нолик на единичку в этой строке, сохранить изменения и выйти с программы.

После этого телефон необходимо перезагрузить и проверить есть ли измениня в настрйоках памяти.

Как видете, после урока как sd карту сделать основной памятью можно запросто оптимизировать свой телефон.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *