Spanish Acceso a DirDefaultExternal en Tablet Samsung A9 8.7"

FabianYacal

New Member
Buenas Chic@s:

Primero comentar que soy nuevo en el desarrollo de app en Android, y compre una tablet samsung como para probar, pero tengo el siguiente problema; cuando quiero acceder a una base de datos SQLite al menos en esta tablet me dice que el directorio no existe, segui todas las indicaciones y aun asi me marcar el mismo problema, le pedi un tablet generico a un cliente y funciono de inmediato, comence a investigar y samsung no permite el acceso a DirDefaultExternal desde android 11 en adelante, pero mas complejo es en android 15 que es la version del samsung, alguien ha tenido ese problema, y como lo pudo resolver.

Estoy en B4A y el codigo con el cual accedo a la base de datos es el siguiente:

Dim rutaDB As String = File.DirDefaultExternal
Dim nombreDB As String = "bdlecturas.db"

If File.Exists(rutaDB, nombreDB) = True Then
SQL1.Initialize(rutaDB, nombreDB, False)
cursor1 = SQL1.ExecQuery("SELECT * FROM TBL_Configuracion_Mensual")
If cursor1.RowCount > 0 Then
cursor1.Position = 0
lblComite.Text = cursor1.getString("Comite")
lblDatos.Text = cursor1.getString("Mes") & " " & cursor1.getString("Año")
End If
cursor1.Close
Else
xui.MsgboxAsync("Base de datos no encontrada en: " & rutaDB , "❌ Problemas con Base de Datos")
End If

Espero alguien me pueda ayudar.

Informacion extra, configure los permisos en el manifiesto y nada, los configure como codigos y tampoco, de hecho ahi fue cuando no hace nada la app.

Saludos
 

FabianYacal

New Member
Lo Propuesto...:
Sub Process_Globals
    Private RuntimePermissions As RuntimePermissions
    Private xui As XUI
    Private SQL1 As SQL
    Dim cursor1 As Cursor
End Sub

Sub Globals
    Private btnSalir As Button
    Private lblComite As Label
    Private lblDatos As Label
    Private lblOperador As Label
End Sub

Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout")
    
    
    Dim rutaDB As String = RuntimePermissions.GetSafeDirDefaultExternal("")
    Dim nombreDB As String = "bdlecturas.db"
    
    If File.Exists(rutaDB, nombreDB) = True Then
        SQL1.Initialize(rutaDB, nombreDB, True)
        cursor1 = SQL1.ExecQuery("SELECT * FROM TBL_Configuracion_Mensual")
        If cursor1.RowCount > 0 Then
            cursor1.Position = 0
            lblComite.Text = cursor1.getString("Comite")
            lblDatos.Text = cursor1.getString("Mes") & " " & cursor1.getString("Año")
            lblOperador.Text = "Nombre Operador : " & cursor1.getString("Operador")
        End If
        cursor1.Close
    Else
        xui.MsgboxAsync("Base de datos no encontrada en: " & rutaDB , "❌ Problemas con Base de Datos")
    End If
End Sub

Realice los cambios, y por lo menos con la Tablet Samsung A9 no me permite realizar la lectura de la base de datos, me dice que la base de datos no existe, y la carpeta correspondiente esta igual que en 5 Tablet diferentes, pero NO Samsung. Aun continuo con el problema.

Saludos.
 
Top