Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Problemas con SDK y NDK para pasar a API 26 (https://www.clubdelphi.com/foros/showthread.php?t=93370)

Ricardo2010 12-06-2018 15:42:52

Nivel API Google Play
 
Tengo la siguiente consulta , desarrolle una aplicación móvil con Rad Studio XE8 todo bien estaba una versión cargada en google play sin problemas desde Noviembre 2017, ahora realice actualizaciones y la cargo a google play y me sale una advertencia que mi nivel de api es 11 pero debe ser cambiada a 26 a partir de agosto del 2018.

Esta actualización de api como la puedo realizar para XE8 ? que debería buscar y donde ?

Gracias

DamianG 12-06-2018 16:58:05

Hola recibi el mismo mensaje al subir la apk, en Android Tools, podes tildar la version de Android y fijate que entre parentesis dice la version de API, tildás sdk platform para bajar la necesaria.



Mi duda es: si selecciono Android 9 (API 28), incorpora las versiones anteriores por ej. para funcionar en telefonos con Android 4 ?

Casimiro Notevi 12-06-2018 17:23:52


Casimiro Notevi 12-06-2018 17:26:26

https://developer.android.com/about/dashboards/

Neftali [Germán.Estévez] 12-06-2018 17:34:55

Cita:

Empezado por DamianG (Mensaje 527050)
Mi duda es: si selecciono Android 9 (API 28), incorpora las versiones anteriores por ej. para funcionar en telefonos con Android 4 ?


Se supone que debería ser compatible hacia adelante, pero no te lo aseguraría 100%,.
De todas formas puedes crear/configurar diferentes SQK con diferentes versiones de Android y utilizar el que necesites.



turbopascual5.0 23-08-2018 11:18:43

Imposible actualizar la api
 
Hola a todos.


Me he encontrado el mismo problema, al subirla me dice que la api es 14, y no consigo cambiarla.


En el Android SDK la versión instalada de SDK tools es la 25.2.5 , y no me aparece ninguna otra por descargar.


Dentro del grupo Android 9 (API28) están todas descargadas.


Y en delphi me dice que la versión instalada es la 25.2.5.



La verdad es no me acabo de aclarar, en las propiedades SDK, NDK, he cambiado las rutas para que apunten a los directorios de la api 28, por ejemplo:


C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\build-tools\28.0.2\zipalign.exe


Pero al compilar sigue con la api14.


Y si intento añadir una sdk,.... add..new.......relleno todas la rutas y al final me dice que ya existe un sdk 25.2.5


Gracias de antemano

turbopascual5.0 24-08-2018 16:18:34

Solucionado.


He instalado android studio, bajado android api 28 y en delphi add new sdk, ahora ya aparece la 26.1.1



Y ademas......


Go to the AndroidManifest.template.xml file within your Delphi project directory and then change the "android:targetSdkVersion" from "%targetSdkVersion%" to "26". This is a bug in Delphi. It should be fixed in the next major update.
Also make sure that you have Android API 26 selected withen the Delphi SDK Manager Properties
Un saludo





turbopascual5.0 26-08-2018 20:52:28

pues no todo es tan facil
 
Pues no acaba de funcionar, abro hilo al respecto.

turbopascual5.0 26-08-2018 21:18:41

Problemas con SDK y NDK para pasar a API 26
 
Hola a todos.


La verdad es que no acabo de entender en profundidad el tema de las APIS, así que si hay algún gazapo no os extrañeis.


He intentado pasar una aplicación a API 26 , google indica que a partir de agosto las actualizaciones de aplicaciones han de tener esa api, y que a partir de noviembre será obligado para las nuevas.


Problemas encontrados.


En delphi, tools, options, sdk manager hay una lista de las sdk versions. Si abro el SDK manager instalado con delphi (versión 25.2.5) en el apartado de tools estan las sdk tools, solo una, la 25.2.5. No sé si la versión de el sdk manager esta asociado al sdk tools, pero tampoco es significativo. Si se instala el SDK por separado, lo más sencillo es hacerlo con Android Studio,(porque el sdk como ejecutable google ya no lo tiene disponible), aparece que esta disponible las sdk tools 26.1.1.

Así, desde el sdk manager que viene con delphi no se puede añadir otra SDK.


Primer pensamiento... instalar desde los directorios en que descarga el manager de studio. Otro problema, la carpeta con el NDK no es reconocida por el wizard de delphi.


Bueno, pues a mano, linea a línea. Otro problema, el manifest no refleja la versión. Aunque tampoco lo hace si en el sdk 25.2.5 cambio las APIS.


En esto último, en el cambio de api ando un poco perdido. La lié, compilé para API 28 y modifiqué el manifest a mano, y la aplicación se paraba. Pensaba que era problema del código de los eventos on create o on show, así que puse un panel nuevo, cuatro botones y el código troceado en los botones. Y quité todo el código de los dos eventos. Lo sé, es un debugger a lo siderurgico...

El caso, la aplicación se paraba igualmente, nada más arrancar.



Pues vuelta a atras, a la api 14, por lo menos que funcione hasta noviembre.... Error, google me bloquea la subida, mínimo api 23.


Y aquí es donde tengo la duda, ¿como cambio las rutas para la api 23? . Solo se me ha ocurrido una cosa, borrar de delphi el sdk, con el manager quitar todas las apis y solo bajar la 23. Y new...sdk. Y cambiar a mano el manifest.


Bueno, así he logrado que funcione, en api 23.




Vaya calvario.


¿os encontrais con estos problemas?


Gracias por anticipado.

Casimiro Notevi 27-08-2018 01:56:18

No abras un nuevo hilo si es el mismo tema, continua en el primero que abriste, los he juntado.
Saludos.

jhonny 27-08-2018 02:16:01

No sé si ya leyeron este post de Sarina Dupoint al respecto:

https://community.embarcadero.com/bl...6-requirements

Y este de Dave Notave donde se explica paso a paso lo que se debe hacer

https://www.delphiworlds.com/2018/06...her-continued/

turbopascual5.0 31-08-2018 10:50:36

Cita:

Empezado por jhonny (Mensaje 528194)
No sé si ya leyeron este post de Sarina Dupoint al respecto:

https://community.embarcadero.com/bl...6-requirements

Y este de Dave Notave donde se explica paso a paso lo que se debe hacer

https://www.delphiworlds.com/2018/06...her-continued/




Muchísimas gracias por los enlaces.


Voy a dejar las aplicaciones en API23 a la espera de que Embarcadero saue la 10.3.


Hacerlo en la versión actual siguiendo los pasos del enlace supera mi nivel tecnico y me veo un poco perdido.

jhonalone 03-09-2018 21:52:30

Hola, turbopacual5.0.

¿Conseguiste publicar en Play Store y descargar después?

Si la respuesta es positiva, explícame d e s p a c i t o cómo lo hicieste, por favor. Reconozco que con los enlaces de johnny me pasa lo mismo que a tí.

Yo tengo el mismo problema con DX 10 Seattle y no lo consigo. Play Store me pide a mí API 26.
El SDK lo tengo actualizado al máximo desde ayer, incluso a la API 28 (Androd 9).

Google me admite el .sdk si modifico el manifiesto, pero luego no puedo bajarlo después, ya que ni siquiera aparece en el buscador. En Play Store, si le digo "Ver en Play Store", me dice que mis dispositivos no son compatibles con la App (No sé como sabe cuales son, pero los lista correctamente)

Si modifico sólo el Manifiesto y compilo con la versión 26 (creo) me da otros problemas en los dispositivos modernos.

De todos modos, me extraña que no haya más desarrolladores en delphi que tengan los mismos problemas que nosotros. Y que no se haya resuelto el problema, a mí me parece muy serio.

Un saludo y gracias de antemano.

turbopascual5.0 05-09-2018 01:06:16

1 Archivos Adjunto(s)
Cita:

Empezado por jhonalone (Mensaje 528286)
Hola, turbopacual5.0.

¿Conseguiste publicar en Play Store y descargar después?

Si la respuesta es positiva, explícame d e s p a c i t o cómo lo hicieste, por favor. Reconozco que con los enlaces de johnny me pasa lo mismo que a tí.

Yo tengo el mismo problema con DX 10 Seattle y no lo consigo. Play Store me pide a mí API 26.
El SDK lo tengo actualizado al máximo desde ayer, incluso a la API 28 (Androd 9).

Google me admite el .sdk si modifico el manifiesto, pero luego no puedo bajarlo después, ya que ni siquiera aparece en el buscador. En Play Store, si le digo "Ver en Play Store", me dice que mis dispositivos no son compatibles con la App (No sé como sabe cuales son, pero los lista correctamente)

Si modifico sólo el Manifiesto y compilo con la versión 26 (creo) me da otros problemas en los dispositivos modernos.

De todos modos, me extraña que no haya más desarrolladores en delphi que tengan los mismos problemas que nosotros. Y que no se haya resuelto el problema, a mí me parece muy serio.

Un saludo y gracias de antemano.


Hola jhonalone.


He descartado usar el sk y ndk descargado de google (lo más fácil es instalar Android Studio). Delphi no reconoce el ndk.

En primer lugar borro el sdk version en delphi


Archivo Adjunto 3694




Abro las android tools y borro todas la apis menos la que me interesa, en mi caso la 23. Y entonces con add le doy el path del sdk y de el ndk y se rellenan todos los datos. Y en la versión de api ya me dice que es la 23 (je,je no hay otra......). Edito AndroidManifest.template.xml y lo modifico:


<uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="23" />


Cuando compilo ya me modifica %minSdkVersion% por 14. Ojo con las comillas, han de estar, es "23" no 23



Con eso logro subir la aplicación al store y descargarla. Eso sí, al instalarla he de ir a permisos de aplicaciones y autorizar los permisos "peligrosos" , que en mi caso es read/write en storage external. Si no lo hago no funciona en el movil de destino, y tampoco pregunta si se debe autorizar al usar la aplicación (no sé por donde leí que debía ser así).

Funcionar... parece que funciona, con algunas incidencias con las que estoy ahora liado. Pruebo la aplicación en un S4 (usb) y bien, la bajo del play en un S6 y division by 0 (estoy intentando localizar donde, porque en el trozo de código donde falla no hay una operación matemática de división). Por cierto, ese error no aparece cuando ejecuto en win.



Pues lo anterior hecho con la api 26: la aplicación la pude publicar en el play, y bajarla , pero se cerraba, sin mensaje de error, tanto en el s6 como en el s4 por usb. Aparte de eso no apareció ningún error de dispositivos ni nada parecido.



Bueno, sí que he hecho una chapucilla.



Delphi rellena las rutas del sdk y el ndk, por ejemplo la ruta de zipaling

C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\build-tools\23.0.3\zipalign.exe
Y me dice directamente que la api es la 23, última línea sdk api level location
C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\platforms\android-23


Pero en el ndk , por ejemplo ndk api location


C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\platforms\android-14


apunta a la carpeta android-14



Si abro la carpeta

C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-ndk-r9c\platforms


no veo una carpeta android-23


Pues la he cogido de la carpeta donde android studio instala el ndk y la he copiado. Y cambiado las rutas.



Pero la verdad, dando palos de ciego. El android sdk manager de android studio permite actualizar el ndk, el que viene con delphi no he visto donde. Tampoco tengo muy claro si mi aplicacion lo usa (he leido que es para reutilizar codigo c ) y tampoco tengo claro si da igual que apunte a la carpeta android-14 o android-23.


Como tampoco tengo claro que en el sdk manager que viene con delphi solo aparezca android sdk tools 25.2.5, con lo que solo puedo tener una version sdk tools en delphi , pero que puede apuntar a apis diferentes, no sé que relación hay.


Seguiré buscando info y leyendo, a ver si me voy enterando.

jhonalone 05-09-2018 13:20:30

Muchísimas gracias por tu esfuerzo turbopascual5.0

Por cierto, ya hace unos añitos del 5.0 y del 5.1 que creo recordar que era la versión en castellano.

Sin embargo, hay algunas cosas que no me quedan claras. (No quisiera armar un un "estropicio" y tener que desinstalar e instalar de nuevo todo el sistema y volver a personalizar el IDE)

A ver si he entendido.

1.- Borro en Delphi la versión 25.2.5 32bit en el Sdk Versions para Android NO el de windows.

2.- Con el SDKManager borro todas las versiones menos la más moderna (23 en tu caso 26 ó 28 en el mío)

3.- Tengo Android Studio instalado, pero no he entendido para qué se usa.

4.- Voy a Delphi y con el botón Add genero una nueva versión.

5.- Pongo las rutas SDK y NDK (¿iguales que las de Android Studio? ¿cómo las localizo?)

6.- Delphi rellena todas las rutas.

7.- Modifico el AndroidManifest.template.xml, sólo android:targetSdkVersion="XX" (Donde XX es la versión que he dejado en el SDKManager)

8.- Al compilar la App, Delphi modifica el %minSdkVersion% por 14 en el AndroidManifest.template.xml.

9.- Ahora subimos la App a Play Store y Google te lo permite.

10.- Al instalarla, tengo que autorizar los permisos "peligrosos", que son los mismos que los tuyos, (uso de la SD) en Google Play Developers.



HE ENTENDIDO que esto mismo no te funcionó con la API 26.

Lo que me extraña es que te dejara subir la App con API 23, pues a mí me dice que tiene que ser mínimo 26.

Lo de la "chapucilla" no me ha quedado muy claro. Necesitaría una pequeña aclaración. Gracias.

Por favor rectifícame lo que corresponda.

Muchas gracias de nuevo por el gran esfuerzo que has hecho para explicarme el proceso.

Cuando me des el visto bueno me pondré manos a la obra.

Un saludo cordial.

jhonalone 05-09-2018 18:19:59

Hola de nuevo turbopascual5.0

En el punto 10 tampoco sé cómo autorizar los permisos "peligrosos". Te agradecería me pusieras al corriente. Sé que te pido demasiado, pero no me defiendo muy bien con Google Play Developer.

Un saludo.

turbopascual5.0 06-09-2018 00:07:04

Cita:

Empezado por jhonalone (Mensaje 528306)
Muchísimas gracias por tu esfuerzo turbopascual5.0

Por cierto, ya hace unos añitos del 5.0 y del 5.1 que creo recordar que era la versión en castellano.

Sin embargo, hay algunas cosas que no me quedan claras. (No quisiera armar un un "estropicio" y tener que desinstalar e instalar de nuevo todo el sistema y volver a personalizar el IDE)

A ver si he entendido.

1.- Borro en Delphi la versión 25.2.5 32bit en el Sdk Versions para Android NO el de windows.

2.- Con el SDKManager borro todas las versiones menos la más moderna (23 en tu caso 26 ó 28 en el mío)

3.- Tengo Android Studio instalado, pero no he entendido para qué se usa.

4.- Voy a Delphi y con el botón Add genero una nueva versión.

5.- Pongo las rutas SDK y NDK (¿iguales que las de Android Studio? ¿cómo las localizo?)

6.- Delphi rellena todas las rutas.

7.- Modifico el AndroidManifest.template.xml, sólo android:targetSdkVersion="XX" (Donde XX es la versión que he dejado en el SDKManager)

8.- Al compilar la App, Delphi modifica el %minSdkVersion% por 14 en el AndroidManifest.template.xml.

9.- Ahora subimos la App a Play Store y Google te lo permite.

10.- Al instalarla, tengo que autorizar los permisos "peligrosos", que son los mismos que los tuyos, (uso de la SD) en Google Play Developers.



HE ENTENDIDO que esto mismo no te funcionó con la API 26.

Lo que me extraña es que te dejara subir la App con API 23, pues a mí me dice que tiene que ser mínimo 26.

Lo de la "chapucilla" no me ha quedado muy claro. Necesitaría una pequeña aclaración. Gracias.

Por favor rectifícame lo que corresponda.

Muchas gracias de nuevo por el gran esfuerzo que has hecho para explicarme el proceso.

Cuando me des el visto bueno me pondré manos a la obra.

Un saludo cordial.




je, je, sí hace unos años de la 5.0, ... que tiempos aquellos, cuando era joven, cuando los dinosaurios poblaban la tierra........


Vamos por faena:


1.- Borro en Delphi la versión 25.2.5 32bit en el Sdk Versions para Android NO el de windows.


Sí , lo borras en delphi, tools, options, sdk manager.


Para no hacer estropicios : abajo veras un botón export, te grabas un fichero (es un fichero texto) con la información de las rutas. Si la cosa se pone fea, usas import y andando.



2.- Con el SDKManager borro todas las versiones menos la más moderna (23 en tu caso 26 ó 28 en el mío)


Correcto. Solo dejas la que vas a usar.



3.- Tengo Android Studio instalado, pero no he entendido para qué se usa.


Para compilar una aplicación android se nesitan unas librerías, el SDK y el NDK. No son más que dos carpetas, con subcarpetas y ficheros. Y un gestor para actualizar los paquetes, el sdk manager. Estos paquetes los proporciona Google.

En la instalación de Delphi se instalan el SDK y el NDK, y te crea dos accesos, uno al sdk manager y otro al avd manager (para el emulador).
En la instalación de delphi ya te dice que si tienes el sdk y ndk que no hace falta que los instales.
Las versiones de NDK las puedes encontrar en https://developer.android.com/ndk/downloads/ es un simple zip, que contiene las carpetas.
Antes para instalar el SDK te podias bajar un ejecutable, y te creaba las carpetas y el acceso a sdk manager.
Ahora el ejecutable no está disponible, puedes bajar el SDK e instalarlo a mano (lo miré pero lo ví lioso), o más fácil, instalar android studio, y él se encarga de instalarte el SDK. Como te he dicho antes el SDK no deja de ser unas carpetas, por lo que si embarcadero las instala en:
C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows
al instalar android manager le puedes decir donde las quieres. Yo le dije que en disco D. Es decir puedes tener el sdk y ndk en varios sitios.

¿que es android studio? Pues el IDE oficial de google para programar aplicaciones android (creo que en java, no estoy seguro).
El caso es que el sdk manager que instala delphi parece un poco viejuno, android sdk tools tiene la version 25.2.5 y a mi nunca me dice que haya otra , y en sdk manager de studio descarga la 26.1.1.


4.- Voy a Delphi y con el botón Add genero una nueva versión.

Correcto.


5.- Pongo las rutas SDK y NDK (¿iguales que las de Android Studio? ¿cómo las localizo?)

C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\
Y dentro de esa carpeta veras la carpeta SDK y la NDK, solo has de decirle que son esas carpetas.

En teoría, porque al fin y al cabo solo es decirle donde estan las carpetas, tambien puedes apuntar a la carpeta de un ndk bajado del enlace que te he dado y apuntar el sdk a la carpeta donde te la instala android studio.
Pues si le dices que el ndk está en la carpeta donde descomprimiste el archivo bajado de la web no reconoce que ahí haya un NDK, parece que sea un bug.

En general, solo es decirle donde estan las carpetas, pero yo apuntando a otras que no sean las que hay en C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\ solo he tenido problemas



6.- Delphi rellena todas las rutas.

Sí, rellena todos los datos y te dirá que la api es la 26.

7.- Modifico el AndroidManifest.template.xml, sólo android:targetSdkVersion="XX" (Donde XX es la versión que he dejado en el SDKManager)

Sí, porque hay un bug y si dejas "%targetSdkVersion%" siempre pone "14", así que hay forzarlo.



8.- Al compilar la App, Delphi modifica el %minSdkVersion% por 14 en el AndroidManifest.template.xml.


Sí , correcto, lo puedes comprobar mirando el manifest que crea. Lo cierto es que tambien podrías forzarlo poniendo "14", pero el resultado es el mismo.


9.- Ahora subimos la App a Play Store y Google te lo permite.

sí, correcto



10.- Al instalarla, tengo que autorizar los permisos "peligrosos", que son los mismos que los tuyos, (uso de la SD) en Google Play Developers.

Depende de la versión de android que corra en el móbil, en un S4 no lo he de autorizar expresamente, en un S6 sí.

Este es un tema que he de mirarme en detalle, porque las aplicaciones te piden que autorices esos permisos , y he visto otras que te dicen que lo has de hacer. Parece ser que se puede consultar el estado y en consecuencia indicarle al usuario que lo haga.


Con la api 26 la aplicación se para, he mirado que algunos desarrrolladores han tenido problemas con sqllite, y mi aplicación hace uso....


Lo de que me permita subir con la 23:

A partir de agosto 2018........ las aplicaciones nuevas api 26 , las que ya estuviesen en el play estaran obligadas a estar actualizadas en noviembre.


Yo la tenía funcionando tan estupendamente en api14, pero como estaba cansado de ver el aviso al poner una actualización tuve la luminosa idea de actualizarlo con api 26 sin ver por la web los posibles problemas, no funcionó, así que la bajé de nuevo a api 14 y sorpresa!! el sr google me dice que nanai, que si la he subido a 26 ahora estoy obligado a mínimo api 23.



Y así estoy, en un S4 corre bien, en win corre bien, en un S6 me da un error de división por cero que estoy intentando encontrar donde se produce. Los S4 y S6 no tienen SD, grabo algunos pdf en \assets\internal, y tengo errores en las rutas de recuperación de los ficheros que antes no tenía. Un append en una base de datos azure (uso unidac) se hace sin problema en win y en android un campo simpre me lo toma como null (es un campo key no admite null) y la aplicación da error, aunque explicitamente le ponga por código que es un valor integer. Un calvario....... por zarpas.


Lamento tener que decirtelo, que tengas suerte que la vas a necesitar.


Un saludo , cualquier cosa no dudes en plantearla.

jhonalone 06-09-2018 13:48:04

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.

turbopascual5.0 06-09-2018 22:50:06

Cita:

Empezado por jhonalone (Mensaje 528322)
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

turbopascual5.0 06-09-2018 22:53:08

Cita:

Empezado por jhonalone (Mensaje 528311)
Hola de nuevo turbopascual5.0

En el punto 10 tampoco sé cómo autorizar los permisos "peligrosos". Te agradecería me pusieras al corriente. Sé que te pido demasiado, pero no me defiendo muy bien con Google Play Developer.

Un saludo.


Se me pasó cosntestarte.


Como te he comentado, en los terminales.


En el play no autorizas nada, es que no existe ni la opción.


saludos


La franja horaria es GMT +2. Ahora son las 17:09:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi