Spanish No me genera carpetas al instalar

Discussion in 'Spanish Forum' started by cas6678, May 13, 2019.

  1. cas6678

    cas6678 Active Member Licensed User

    Hola a todos. Esto de volver a b4a cada tanto me hace retroceder en mis conocimientos :(.

    Tengo una aplicacion que lee posiciones GPS y me las guarda en un txt, funciona bien en una tablet con Android 5.1.1. Sin embargo al querer ponerlo en un telefono con Android 8.0 la aplicacion se cuelga al momento de escribir o consultar el txt. Me he dado cuenta que no me ha generado la carpeta Android/data/b4a.nombreapk/files. Supongo que sera por eso que se cuelga, porque el archivo a consultar deberia estar alli y esa direccion no existe.

    Entiendo que sera por la forma de gestionar los permisos en 8.0 a diferencia de 5.1.1. pero tengo otras aplicaciones que gestionan archivos en 8.0 y no encuentro diferencias ni el codigo, ni en el manifiest.

    Que me estoy perdiendo???
     
  2. José J. Aguilar

    José J. Aguilar Active Member Licensed User

  3. Descartex

    Descartex Well-Known Member Licensed User

    Buenas!!!
    Ejecutala en modo Debug y ponle un
    Code:
    Log(File.DirInternal)
    A ver que tira por el log...
     
  4. cas6678

    cas6678 Active Member Licensed User

    No me quiero complicar ahora mucho con el tema de los permisos. Tengo pensado hacerlo cuando tenga que subir al PlayStore y necesite aumentar la version, de momento no lo necesito y trabajo con android:targetSdkVersion="22"

    Algo me pasa que no se me instalan las carpetas en la ruta normal pero.............sorpresa..........la ejecute en modo Debug para responder a @José J. Aguilar y decirle el error y ahora ya no hay error, es decir, me creo la ruta y funciona perfectamente. No me lo explico. Voy a intentar a instalar la apk en otro movil con 8.0 y vere que pasa.

    A la pregunta de @Descartex ...

    /data/user/0/b4a.nombreapk/files

    Creo que quizas no sean solo los permisos....quizas algo relacioando con el dispositivo?
     
  5. cas6678

    cas6678 Active Member Licensed User

    No hay caso. Ahora esto poniendo el archivo .apk en otro movil y la aplicacion se instala pero no me general la carpeta, luego cuando la aplicacion quiere recurrir a escribir se cuelga.

    La ruta que uso es esta:

    DirFile = File.DirDefaultExternal

    El tema es que no me crea siempre al instalar
     
  6. José J. Aguilar

    José J. Aguilar Active Member Licensed User

    Has añadido los permisos al manifest?

    AddManifestText(
    <uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="19" />
    )


    Échale un ojo al post de los Runtime Permissions. Verás que para tu app no tendrás que solicitarlos, pero como indica el post, podrás usar rp.GetSafeDirDefaultExternal("")


    1. Use RuntimePermissions.GetSafeDirDefaultExternal("") instead of File.DirDefaultExternal. The parameter passed is an optional subfolder that will be created under the default folder.


    Si no ,usa DirInternal, como indica:

    https://www.b4x.com/android/forum/threads/app-install-not-creating-app-folder.104535/

    saludos,
     
  7. cas6678

    cas6678 Active Member Licensed User

    Tengo que estudiarme lo que me dices en detalle.

    He probado con DirInternal pero me crea la carpeta habitual pero luego el archivo que yo genero desde la aplicacion vete a saber donde lo pone porque ahi no :D, aunque al menos la aplicacion no se detiene asi que en algun lugar lo dejara.

    Veo por el link que compartes que a alguien mas le ha pasado y que habra habido algun cambio en todo esto.

    De momento lo he soluciando con DirRootExternal y me deja el archivo en el directoria principal.

    Gracias por tu colaboracion.
     
  8. Xanatos34

    Xanatos34 Member Licensed User

    Code:
    Dim rp As RuntimePermissions
    dim rutaBase As String
    dim rutaImagenes as string

    rutaBase=rp.GetSafeDirDefaultExternal(
    "")
    rutaImagenes=rutaBase & 
    "/imagenes/productos"


    Sub Activity_Create(FirstTime As Boolean)
        
    ' Permiso escritura
        rp.CheckandRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)

    End Sub


    Sub Activity_PermissionResult (Permission As String, Result As Boolean)
          

        
    If Permission = rp.PERMISSION_WRITE_EXTERNAL_STORAGE and result=true Then
    ' Permiso correcto
              If File.Exists(rutaImagenes, "") = False Then
                  
    File.MakeDir(rutaBase, rutaImagenes)
             
    end If
                  
        
    End If       
    end sub
    Algo así te deberia valer a mi me funcionó. Los permisos son un auténtico coñazo a partir de la versión 6 de Android.
     
    José J. Aguilar likes this.
  9. cas6678

    cas6678 Active Member Licensed User

    Lo mirare, muchas gracias por tu aporte.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice