Spanish Problemes acceso storage Android 11

Espinosa4

Active Member
Licensed User
Longtime User
Sí sí lo puse allí. El caso es que salía la autorización se le daba, luego good to to y ahí se quedaba.

Bueno bueno, ya me veo hecho un iaio 😆
 

Espinosa4

Active Member
Licensed User
Longtime User
Nada que no quiere.

No crea los directorios.
IMG_20201005_231913.jpg


miraré otras opciones.
Muchas gracias!
 

drgottjr

Well-Known Member
Licensed User
Longtime User
toma. vamos en otro sentido. lee cuidadosamente.
en el log, muestro 3 directorios. veras que dir external and safe dir external son los mismos.

averiguo la existencia de la bd en dir external (claro, no esta en mi aparato). intento copiarla (otro fracaso pues no la tengo en dir assets.)
intento crear un archivo en dir external. exito.
intento crear una db en dir external. exito.

todo esto significa que puedo creat y guardar archicos en safe dir external in android 11.
en android 11, tendras que utilizar rp.getsafedirexternal. lo tenias, pero no lo utilizabas. por lo visto, el crear un archivo en dir external se efectua con rp.getsafedirexternal. deja el runtimepermission en este caso. ya no vale

si instalas tu app en un aparato nuevo, a ver si logras copiar la db de dir assets a safedirexternal. si la instalas como actualizacion, a ver si abres la db en safe dir external como de costumbre.

tuve que cortar mucho para que quepase el archivo .zip solo es para demostrar el acceso a dir external
 

Attachments

  • L4Pro.zip
    340.3 KB · Views: 122
Last edited:

Espinosa4

Active Member
Licensed User
Longtime User
Los mensajes han sido los siguientes,

Aunque no he podido copiar el archivo, he podido create la db en dir external

Saludos
 

Espinosa4

Active Member
Licensed User
Longtime User
drgottjr!!! Funciona!!! Con el safe.
Muchísimas gracias!!! Me queda dar unos retoques pero ya funciona básicamente!!


GRacias
 

Espinosa4

Active Member
Licensed User
Longtime User
Una última pregunta de un pardillo como yo....
Podría crear una carpeta en el external para hacer copias de seguridad de la base de datos?
Makedir no funciona. Yo hacía copias en el emulated/0/L4backups pero no puedo crear las carpetas.

Vaya dolor de cabeza que te estoy dando!
 

drgottjr

Well-Known Member
Licensed User
Longtime User
prueba con algo asi:
B4X:
Dim backupfolder As String = rp.GetSafeDirDefaultExternal("backup")
log( "backup: " & backupfolder)

no se si hay que crearlo. si arroja un error, intenta crearlo
 
Usa permisos en tiempo de ejecucion.

RuntimePermissions:
    Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_EXTERNAL_STORAGE)
            Wait For Activity_PermissionResult (Permission As String, Result1 As Boolean)
           
            If Result1 Then
                Log(Permission)
                Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
                Wait For Activity_PermissionResult (Permission As String, Result2 As Boolean)
               
                If Result2 Then
                    Log(Permission)
                    'Lo que vas ha hacer
                Else
                    ToastMessageShow("Debe aceptar los permisos solicitados", False)
                End If
            Else
                ToastMessageShow("Debe aceptar los permisos solicitados", False)
            End If

Además puedes usar FileProvider para acceder a la carpeta SharedFolder

Algo asi

FileProvider:
Dim bmp As Bitmap
           
                bmp = ModuloFunciones.LoadbitmapSample2(Starter.provider.SharedFolder, tempImageFile, True)
                bmp = ModuloFunciones.CreateScaledBitmap(bmp, 1920, 1080, True)
       
                Dim Out As OutputStream
                Out = File.OpenOutput(Starter.provider.SharedFolder, tempImageFile, False)
                bmp.WriteToStream(Out, 100, "JPEG")
                Out.Close
 

Espinosa4

Active Member
Licensed User
Longtime User
Muchísimas gracias por todo bsepulveda!

Voy a hacer pruebas con lo comentas y ya te respondo.

Me estoy volviendo loco queriendo salvar un archivo en una carpeta del raíz o download por ejemplo para luego poder importarla.

Me hago mayor para estos cambios 😅😅
 

busmatic

Active Member
Licensed User
Yo tenia el mismo problema xon solo agregar esto al manifiest lo he solucionado

SetApplicationAttribute(android:requestLegacyExternalStorage, true)
 
Top