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
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.
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