Я изредка занимаюсь разработкой под Android (на Qt). Недавно узнал, что Гоголь заблокировал для сторонних приложений возможность записи на внешнюю SD-карту. А чтобы писать на SD, нужно рутование девайса.Таким образом, я не могу заставить свое приложение нормально работать на железке, так как данные занимают около 1Гб, а на внутренней памяти места нет.
Нашел следующее решение:
Как в Android 4.4 KitKat разрешить запись на SD карту без рутования
http://webhamster.ru/mytetrashare/index/mtb0/1421490641w34hn...
На примере Яндекс Карт.1. Идем в магазин #Google Play Store, открываем страничку нужного приложения и видим его ключевое название (ID) в адресной строке, в нашем случае из “https://play.google.co…d=ru.yandex.yandexmaps” понятно, что название/ID приложения “ru.yandex.yandexmaps”
2. Создаем через системный файловый менеджер (который идет с официальной прошивкой и может писать и удалять на карте где угодно) папочку для данных нашего приложения в формате “/storage/sdcard1/Android/data/myappname” – в нашем случае с картами Яндекса будет “/storage/sdcard1/Android/data/ru.yandex.yandexmaps”.
3. Запускаем приложение и в нем указываем созданную папку, при необходимости (в случае карт Яндекс это требуется) – перезапускаем приложение.
4. Получаем профит – карты отлично скачиваются и сохраняются на внешнюю карту.
И так для любого приложения и без всякого рута!
Вопрос в следующем. Может ли программа САМА создать свой каталог с именем типа “/storage/sdcard1/Android/data/ru.yandex.yandexmaps”? Или его обязательно нужно вручную создавать через системный файловый менеджер? Сейчас проверить не могу, может кто-то уже пробовал, что получилось?
> Недавно узнал, что Гоголь заблокировал для сторонних приложений возможность записи на внешнюю SD-карту.Где это ты узнал?
Причем тут программирование?> Вопрос в следующем. Может ли программа САМА создать свой каталог с именем
> типа “/storage/sdcard1/Android/data/ru.yandex.yandexmaps”? Или его обязательно
> нужно вручную создавать через системный файловый менеджер? Сейчас проверить не могу,
> может кто-то уже пробовал, что получилось?Когда пишешь программу в манифесте указываешь нужные пермишоны
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
File MapDir = new File(Environment.getExternalStorageDirectory().toString()+"/Android/data/ru.yandex.yandexmaps");
MapDir.mkdirs();Там ещё кучу проверок надо перед записью http://developer.android.com/reference/android/os/Environmen...