Howto para obtener el camino real con ACTION_OPEN_DOCUMENT_TREE intención. Lollipop API 21 & 22
Mi aplicación descarga y descomprime un archivo en una carpeta específica:
output = new FileOutputStream(realpath, true); output.write(buffer, 0, bytesRead); ZipFile zipFile = new ZipFile(realpath);
Con el nuevo ACTION_OPEN_DOCUMENT_TREE intención que me gustaría ofrecer al usuario para elegir esa carpeta.
- Android Studio - Problemas con Lollipop, ADB y Genymotion: Los dispositivos no aparecerán. "El servidor adb está desactualizado. asesinato…"
- Bluetooth GATT onConnectionState El cambio no funciona en Lollipop
- Android Nexus 5.0 Crash Señal fatal 11 (SIGSEGV), código 1 0x999e000c
- Android 5.0 android: elevación Funciona para la vista, pero no el botón?
- SyncAdapter vs JobScheduler
Al probar los valores recibidos en mi onActivityResult, obtengo un Path como /tree/primary:mynewfolder
, que no es la ruta real física como / sdcard / mynewfolder.
Uri treeUri = data.getData(); String sPath=treeUri.getPath(); Log.v("Path from Tree ", sPath);
Mi método de descomprimir necesita la ruta real:
ZipFile zipFile = new ZipFile(realpath);
¿Cómo obtengo la ruta real como / sdcard / mynewfolder del URI proporcionado en Lollipop (API 21 y 22)?
- ¿Cómo arreglar la línea de base de la fuente en Android Lollipop cuando se trabaja con fuentes personalizadas de iconos?
- El icono de notificación de Lollipop es demasiado pequeño
- Cambiar la configuración de WiFi en Android 5 (L) mediante programación
- Mostrando un botón de desbordamiento de menú en una barra de herramientas
- CardView no muestra Shadow en Android L
- Estilo de la barra de herramientas Android
- Ripple efecto en Android Lollipop CardView
- ¿Puedo usar Widgets de la biblioteca de soporte de Android L Preview en la versión actual de Android?
Proceso de obtener el camino real de URI es igual que antes, pero con un poco de adición:
Uri uri = data.getData(); Uri docUri = DocumentsContract.buildDocumentUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri)); String path = getPath(this, docUri);
La esencia del método getPath () con métodos intermedios se puede encontrar aquí: getPath ()