Ver Mensaje Individual
  #19  
Antiguo 06-09-2018
Avatar de turbopascual5.0
turbopascual5.0 turbopascual5.0 is offline
Miembro
 
Registrado: feb 2011
Posts: 54
Reputación: 14
turbopascual5.0 Va por buen camino
Cita:
Empezado por jhonalone Ver Mensaje
Hola, turbopascual5.0.

Voy a ponerme manos a la obra.

Si tardo en responder es que estoy haciendo pruebas.

Me dices que no tienes SD en tus terminales.

MI App está orientada justo a tarjetas de memoria (aunque también puede funcionar sin ellas)

En realidad tengo dos problemas:
1.- La subida a Play Store.
2.- Los permisos para el uso de la SD

Si instalo en mis terminales laTableta 4.4, Telef 4.1.2 y telef 7.1.1 (los números son las versiones Android). Digo, si instalo desde el IDE con android:targetSdkVersion por defecto funciona en todos.

Si cambio la versión en el Manifest funciona en los antiguos pero en el nuevo (7.1.1) me da error de escritura en la SD. Parece ser que las nuevas versiones de Android son más restrictivas con los permisos y por ahí van los tiros en Play Store.

Utilizo un control para saberlo y está confirmado.
Tengo a True en el Uses Permision del Project/Options.

Código Delphi [-] function CheckPermission(const APermissionName: string): Boolean; var PackageName: JString; begin Result := False; PackageName := TAndroidHelper.Context.getPackageName; Result := TAndroidHelper.Context.getPackageManager.checkPermission(StringToJString(APermissionName), PackageName) = TJPackageManager.JavaClass.PERMISSION_GRANTED; end; function CanWriteExterStorage: Boolean; begin Result := False; Result := CheckPermission(C_android_permission_EXTERNAL_STORAGE); end; function TForm1.CheckCanWriteExterStorage: Boolean; begin {$IFDEF ANDROID} Result := False; if not CanWriteExterStorage then begin if not (CheckPermission(C_android_permission_EXTERNAL_STORAGE)) then begin ShowMessage(' "WRITE_EXTERNAL_STORAGE" no es "True"'); Sleep(5000); exit; end; end; {$ENDIF} Result := True; end;


Está confirmado. Sigo peleando. Ya contaré.

Bueno, no me quedó claro dónde cambias los permisos, en el terminal o al subir a Play Store.

Saludos cordiales.



Los permisos los autorizo en el terminal.


Efectivamente, en las ultimas versiones de android el tema permisos es mucho más extricto y sé que por código (me he de mirar el tuyo) se comprueba si están dados y se programa el pedirlos. Esa es una parte enla que aún no me he puesto. Lo que hago es autorizarlos directamente en el terminal.


Si instalo en el S4 y en el terminal voy a permisos de la aplicación ya aparecen todos autorizados
Si instalo enel S6 y miro lo mismo aparecen no autorizados, y los autorizo en ese menú
Claro que no es la forma, lo correcto es por código mirar si están autorizados y pedir la autorización si no lo están.


Comentas:
Si instalo en mis terminales laTableta 4.4, Telef 4.1.2 y telef 7.1.1 (los números son las versiones Android). Digo, si instalo desde el IDE con android:targetSdkVersion por defecto funciona en todos.

En este punto no sé si al estar los terminales en modo desarrollador ya se autorizan. Yo en modo desrrollador solo tengo puesto el S4, en el S6 los isntalo desde el play.


Otra cosa, comentas:


Si cambio la versión en el Manifest funciona en los antiguos pero en el nuevo (7.1.1) me da error de escritura en la SD. Parece ser que las nuevas versiones de Android son más restrictivas con los permisos y por ahí van los tiros en Play Store.

Yo creo que debe haber una consistencia entre targetSdkVersion declarado en el manifest y la api usada. Compilas con api 26.....manifest 26. Me imagino


Un saludo
Responder Con Cita