Forçar o acesso ao cartão microSD externo removível
Estou usando um Samsung A3, Android 5.0.2. estou a usaresta configuração para compilar aplicativos, ou seja, o destino Android 4.1 Jelly Bean (API 16).
Eu sei exatamente o caminho do cartão microSD externo removível, é/mnt/extSdCard/
(veja também a Nota 7 abaixo).
Problema: Percebo que
File myDir = new File("/mnt/extSdCard/test");
myDir.mkdirs();
não funciona: nenhum diretório é criado.
Além disso:
File file = new File("/mnt/extSdCard/books/test.txt"); // the folder "books" already exists on the external microSD card, has been created from computer with USB connection
FileOutputStream fos = new FileOutputStream(file);
produz este erro:
java.io.FileNotFoundException: /mnt/extSdCard/books/test.txt: falha na abertura: EACCES (permissão negada) em libcore.io.IoBridge.open (...
Como forçar o acesso de leitura + gravação ao cartão microSD removível externo?
Notas:
Environment.getExternalStorageDirectory().toString()
dá/storage/emulated/0
que é o armazenamento interno do telefone, ou seja, não o que eu quero.
getExternalFilesDir(null)
dá/storage/emulated/0/Android/data/com.blahblah.appname/files/
ou seja, não o que eu quero. Note que eu não posso usargetExternalFilesDirs
com uma finals
porque isso não está disponível na API16. As permissões de tempo de execução também não estão disponíveis na API16.
eu já tenho<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
, e tambémREAD_EXTERNAL_STORAGE
.
Eu leio muitos tópicos comoeste oueste, de fato provavelmente vinte perguntas semelhantes, mas finalmente parece muito complexo e tudo e seu contrário são ditos. É isso que estou procurando por uma solução específica para essa situação.
Eu não queroACTION_OPEN_DOCUMENT
eACTION_CREATE_DOCUMENT
, na verdade, eu não quero nenhuma solução GUI.
Alguns aplicativos que tenho (Sync Resilio)tem permissão para modificar/mnt/extSdCard/music/
com sucesso, para criar novos arquivos lá, etc.
A propósito,ls -la /mnt/extSdCard/
dá
drwxrwx--x root sdcard_r 2017-10-15 01:21 Android
drwxrwx--- root sdcard_r 2017-10-14 00:59 LOST.DIR
drwxrwx--- root sdcard_r 2017-12-05 16:44 books
drwxrwx--- root sdcard_r 2017-11-21 22:55 music