TransWikia.com

Acceder a memoria SD con react native

Stack Overflow en español Asked by Edwin V on December 28, 2021

tengo una aplicación que permite tomar fotos y moverlas a una carpeta personalizada. Todo funciona bien pero no puedo obtener acceso a la memoria externa SD para crear la carpeta personalizada y mover las fotos a la SD, es necesario ya que los dispositivos que utilizo tienen poca memoria interna.

Agrege los permisos necesarios

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

Uso RNFS para crear la carpeta

const RNFS = require('react-native-fs')
const customFolder = `${RNFS.ExternalStorageDirectoryPath}/customName`
RNFS.mkdir(customFolder).then(() => console.log('Directories created')).catch(err => console.log(err))

Tambien he tratado de utilizar la otra ruta que tiene RNFS “ExternalDirectoryPath” pero no consigo acceder a la SD.
¿Es posible guardar o mover estas carpetas y fotografias en la SD con react native?

One Answer

El acceso a la tarjeta SD ha cambiado a lo largo del tiempo en Android. Actualmente no existe una unica manera que funcione en todos los casos, si para algunos puntuales:

  • Antes de KitKat: solo soporte para acceder a ciertas carpetas conocidas (como imagenes, videos, etc) no para crear carpetas.

  • KitKat: Se extiende acceso de escritura en la SD mediante API en carpetas creadas especificamente para cada aplicacion (/android/data/app.id/ por ejemplo).

  • Lollipop: Se agrega API para permitir acceso a escribir en carpetas de otros proveedores o aplicaciones (datos compartidos, etc).

  • Nougat: Se simplificó la API paraque se pueda acceder a carpetas especificas de la memoria externa (llamese Media, Video, etc.).

En resumen, crear una carpeta directamente en la raiz de la SD card parece no estar dentro de las opciones comunes a todas las versiones de Android mas recientes.

Puedes intentar mediante API escribir en carpetas conocidas (en algunos casos solo crear archivos en dicha carpeta pero no crear subcarpetas), o derechamente escribir en la carpeta asignada a tu aplicacion Android/data/<app-id>/ (conocida en Cordova como externalApplicationStorageDirectory)

Answered by F.Igor on December 28, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP