Acceder

Ver la Versión Completa : Duda API v1 Google


desdroid
22/06/13, 13:27:44
Hola, actualmente estoy desarrollando una aplicación sobre localización Android, y para ello estoy utilizando la v1 de la API de Google. Ya sé que ha aparecido recientemente la v2 de la API, por eso mi duda es la siguiente:

¿Puedo subir mi aplicación (API v1) a Google Play y mantenerla funcionando en un futuro?

Es importante para mí resolver esta pregunta porque esta aplicación forma parte de un proyecto final de carrera, y necesito saber si puedo continuar con esta API o tendría que cambiar el código obligatoriamente a la API v2 para poder subirla al Google Play.

Gracias de antemano.

mocelet
22/06/13, 13:57:59
Al Google Play le da igual lo que subas mientras sea un apk válido.

El riesgo que corres usando un API de Google maps obsoleta desde diciembre de 2012 es que dentro de un tiempo dejen de darle servicio. Desde marzo tampoco se pueden pedir claves para la v1.

En el contexto temporal de tu proyecto te da igual, si quieres que el proyecto le sirva a alguien después de leído haría el esfuerzo de migrarlo, no deja de ser un mérito evaluable.

kriogeN
22/06/13, 16:33:03
Como dice mocelet, si ya tienes solicitadas las claves no hay problema. Te funcionará con claves solicitadas antes de marzo de 2013.

Ahora bien, ¿tienes solicitada también tu clave de Google Maps para la keystore Release? Si no es así tendrás que migrar obligatoriamente a V2. En caso de que también tengas la clave, no hay problema, puedes seguir con V1.

De todas formas migrar de V1 a V2 no es muy costoso, y el resultado final es muchísimo mejor.

desdroid
22/06/13, 17:40:18
Yo ya tengo mi clave para la v1, así que por eso no hay problema. ¿La clave para la keystore Release cómo se conseguía?

Con migrar de v1 a v2 supongo que os referís a cambiar el código, ¿no?

kriogeN
22/06/13, 18:16:41
Yo ya tengo mi clave para la v1, así que por eso no hay problema. ¿La clave para la keystore Release cómo se conseguía?

Con migrar de v1 a v2 supongo que os referís a cambiar el código, ¿no?

Pero tendrás la Key para la KeyStore Debug. Esa no te vale para subir aplicaciones al Play Store.

La clave para la KeyStore Release se consigue generando una KeyStore Release (puedes hacerlo con el Eclipse cuando le das a Export) y luego repitiendo el proceso que en su día hiciste con el MD5 pero poniendo como ruta la KeyStore Release.

Si no lo has hecho ya, ya puedes ir olvidándote de subir la app con API V1, y tendrás que hacer el proceso (para ambas keys), pero esta vez con el SHA1.

desdroid
22/06/13, 18:30:54
Pero tendrás la Key para la KeyStore Debug. Esa no te vale para subir aplicaciones al Play Store.

La clave para la KeyStore Release se consigue generando una KeyStore Release (puedes hacerlo con el Eclipse cuando le das a Export) y luego repitiendo el proceso que en su día hiciste con el MD5 pero poniendo como ruta la KeyStore Release.

Si no lo has hecho ya, ya puedes ir olvidándote de subir la app con API V1, y tendrás que hacer el proceso (para ambas keys), pero esta vez con el SHA1.

Pues no, en su momento no creé esa otra clave porque no pensé que la v1 iba a quedar obsoleta...

En fin, tendré que modificar el código para la v2, aunque no me aclaro mucho todavía.

A la hora de implementar el LocationListener en la v2 para configurar el GPS, ¿también se utilizan los métodos onLocationChanged(), onProviderDisabled(), onProviderEnabled() y onStatusChanged(), como en la v1?

En la v1 aparece un Progress Dialog antes de mostrar la ubicación actual, pero en la v2 se muestra directamente la ubicación, no da tiempo a que aparezca el diálogo de progreso. No sé por qué, si el código lo mantengo igual, lo único que hago es sustituir el GeoPoint por LatLng.

¿Qué puedo estar haciendo mal?

kriogeN
22/06/13, 20:37:49
En la V2 no tienes que implementar los métodos de GPS. Lo controla el propio sistema.

Salvo que quieras cambiarlo por el tuyo propio porque quieras hacer algo muy específico, pero en un principio no es necesario.

El único método que deberás implementar es el "setOnMyLocationChangeListener", que lo que hará es que cada vez que tu posición cambie ejecutar el código, vamos, lo mismo que el "onLocationChanged", pero sin preocuparte de ser tú el que controla al GPS.

En cuanto a lo del cuadro de diálogo. Si quieres puedes hacerlo a mano, muestra el Progress Dialog y en la primera ejecución del "onMyLocationChange" lo quitas. Fácil.

desdroid
23/06/13, 11:21:36
En la V2 no tienes que implementar los métodos de GPS. Lo controla el propio sistema.

Salvo que quieras cambiarlo por el tuyo propio porque quieras hacer algo muy específico, pero en un principio no es necesario.

El único método que deberás implementar es el "setOnMyLocationChangeListener", que lo que hará es que cada vez que tu posición cambie ejecutar el código, vamos, lo mismo que el "onLocationChanged", pero sin preocuparte de ser tú el que controla al GPS.

En cuanto a lo del cuadro de diálogo. Si quieres puedes hacerlo a mano, muestra el Progress Dialog y en la primera ejecución del "onMyLocationChange" lo quitas. Fácil.

Vale, muchas gracias.

¿Para la v2 también necesito esa segunda clave a la hora de subir la aplicación a Play Store?

A la hora de crear la api key para la v2, se generan dos claves diferentes: key for Android apps (with certificates) y key for browser apps (with referers). Entiendo que la primera (with certificates) es la que se necesita cuando la aplicación se va a subir a Play Store, ¿o me equivoco?

Lo pregunto porque no quiero que me pase lo que me ha pasado con la v1.

kriogeN
23/06/13, 12:10:30
Necesitas esa clave, pero para la versión Release. Supongo que la que habrás generado será con la Debug.

desdroid
23/06/13, 13:04:31
Necesitas esa clave, pero para la versión Release. Supongo que la que habrás generado será con la Debug.

Sí, pero se generan dos claves, y quiero saber si una de esas claves (with certificates) es la de la versión Release o no. Y si no es la del Release, quiero saber cómo tengo que generarla.

kriogeN
23/06/13, 13:28:11
Esas 2 claves generadas son DEBUG.

Para generar la RELEASE primero necesitas crearte un KeyStore Release, del cual volverás a generar 2 claves, las cuales tendrás que modificar en el código actual (la de Android Apps) para cuando vayas a subir la App al Play Store.

Lee esto:

http://developer.android.com/tools/publishing/app-signing.html#releasemode

Y una vez que tengas generada la KeyStore Release tendrás que obtener el SHA1 FingerPrint de esa KeyStore. Tal y como explica aquí:

https://developers.google.com/maps/documentation/android/start#displaying_certificate_information

En la sección "Displaying the release certificate fingerprint"

Y como ya he dicho antes, tendrás 2 API Key, una para Debug y otra para Release. Si compilas una Release con la API Debug los mapas no funcionarán, y viceversa. Así que mientras testees usa la API Debug, y cuando vayas a generar una Release (mediante la opción Export del Eclipse) cámbiala antes por la API Release.

Saludos.

desdroid
24/06/13, 13:36:50
Esas 2 claves generadas son DEBUG.

Para generar la RELEASE primero necesitas crearte un KeyStore Release, del cual volverás a generar 2 claves, las cuales tendrás que modificar en el código actual (la de Android Apps) para cuando vayas a subir la App al Play Store.

Lee esto:

http://developer.android.com/tools/publishing/app-signing.html#releasemode

Y una vez que tengas generada la KeyStore Release tendrás que obtener el SHA1 FingerPrint de esa KeyStore. Tal y como explica aquí:

https://developers.google.com/maps/documentation/android/start#displaying_certificate_information

En la sección "Displaying the release certificate fingerprint"

Y como ya he dicho antes, tendrás 2 API Key, una para Debug y otra para Release. Si compilas una Release con la API Debug los mapas no funcionarán, y viceversa. Así que mientras testees usa la API Debug, y cuando vayas a generar una Release (mediante la opción Export del Eclipse) cámbiala antes por la API Release.

Saludos.

¿Las dos claves del RELEASE basta con generarlas una sola vez (me refiero a si caducan o no)? ¿Puedo generarlas ahora, aunque la aplicación no esté terminada todavía?

kriogeN
24/06/13, 14:46:20
Son válidas durante todo el tiempo que la KeyStore Release sea válida. Que es un mínimo de 25 años.

desdroid
25/06/13, 09:23:41
Otro problema que tengo a la hora de ejecutar la aplicación es que la pantalla del emulador es blanca, no negra. Pero esto sólo me pasa cuando ejecuto aplicaciones de mapas.

No sé si es que algún día cambié sin darme cuenta alguna opción de configuración de Eclipse, pero me extraña que sólo me pase con mapas.

¿Alguna idea de por qué puede ser?

desdroid
25/06/13, 09:46:27
He encontrado esta noticia de la api v3. ¿Qué significa exactamente?

Me gustaría presentar mi proyecto la primera semana de septiembre. ¿Podré presentarlo en la api v2? Como tenga que cambiar a la v3 me voy a volver loca. :-(

¿Qué es lo que cambia de la v2 a la v3?

kriogeN
25/06/13, 10:01:32
Que yo sepa API V3 para Android ni está, ni se le espera.

Lo que existe V3 es la versión para JavaScript, que es la equivalente a la V2 de Android.

desdroid
25/06/13, 10:08:56
Ahh, vale. Entonces, puedo seguir utilizando la api v2 sin problemas, ¿no?

¿Lo de la pantalla del emulador a qué puede ser debido?

Gracias.

set92
25/06/13, 16:05:14
La API v3 aunque todavia no la han presentado yo creo que igual la lanzan con la salida del nuevo Google Maps, o igual primero lo lanzan en su app oficial y en ordenadores que ya esta en fase beta por si quereis probarlo y luego al de un tiempo lanzar la API para que la use todo el mundo, porque si no la lanzan no creo que puedan implementar todos los cambios que han hecho en la API v2 no?

Y ahi seria donde si no me equivoco en la Google I/O dijeron que lo lanzarian a finales de verano e igual de ahi lo de septiembre, aunque oficial no hay nada, pero si hay nuevos mapas yo creo que sacaran nueva API para poder implementar todos esos cambios o tener acceso a ellos.

desdroid
09/07/13, 14:28:52
kriogen, estoy intentando obtner la release key, pero algo no funciona.

En el cmd, una vez que estoy en el directorio de la carpeta bin, introduzco el siguiente código:

keytool -genkey -v -keystore my-release-key.keystore
-alias releaseKeyNew -keyalg RSA -keysize 2048 -validity 10000

Le doy a intro y aparece el mensaje "Introduzca la contraseña del almacén de claves:"

Le vuelvo a dar a intro y aparece el mensaje "Volver a escribir la contraseña nueva:"

Pero no me deja escribir nada, y si le doy varias veces a intro, aparece el mensaje: "Demasiados fallos. Inténtelo más adelante".
No sé por qué pasa esto. He visto varios tutoriales y al darle a intro deja continuar para rellenar una serie de datos.

Dexafree
09/07/13, 16:27:50
e doy a intro y aparece el mensaje "Introduzca la contraseña del almacén de claves:"

Le vuelvo a dar a intro y aparece el mensaje "Volver a escribir la contraseña nueva:"

Escribes la contraseña del keystore correctamente?
Asegurate de estar poniendo bien las mayusculas y minusculas..

Aqui tienes un enlace que te ayudara a obtener las keys: http://www.sgoliver.net/blog/?p=3244 :ok:

desdroid
09/07/13, 17:52:07
¿Qué contraseña? No me deja escribir ninguna contraseña. Se supone que con darle a intro valdría, ¿no?

desdroid
09/07/13, 18:13:14
Creo que me estoy confundiendo. Al escribir la contraseña, como no aparecían los caracteres en pantalla, pensaba que no me dejaba escribir nada. Pero veo que sí deja. ¿Vale cualquier contraseña?

desdroid
09/07/13, 19:12:15
Ahora me da el siguiente error:

[Almacenando my-release-key.keystore]
error de herramienta de claves: java.io.FileNotFoundException: my-release-key.keystore (Acceso denegado)

Dexafree
10/07/13, 23:03:38
Ahora me da el siguiente error:

[Almacenando my-release-key.keystore]
error de herramienta de claves: java.io.FileNotFoundException: my-release-key.keystore (Acceso denegado)

Cuando le pasas el atributo my-release-key.keystore le pones el nombre de tu keystore?
Lo haces desde la ruta de tu keystore?

desdroid
12/07/13, 23:51:37
Lo hago desde la ruta Java/jdk1.7.0_01/bin.

desdroid
18/07/13, 11:08:44
Es urgente, por favor. Subo el post.

Dexafree
19/07/13, 09:06:29
Exactamente que haces, en que ruta tienes cada cosa y cuál es el nombre de tu keystore?

Con eso en principio ya se puede dar el comando completo

PD: actualiza Java

desdroid
19/07/13, 13:52:45
¿A qué keystore te refieres? El archivo debug.keystore está ubicado dentro la carpeta .android. No tengo ningún otro keystore.

desdroid
22/07/13, 22:29:35
Sigo sin saber cómo obtener la release key, me sigue dando el mismo fallo.

kriogeN
23/07/13, 01:04:50
La Release KeyStore la puedes generar desde Eclipse, la primera vez que generas la versión Release del APK. Con la opción "Export..."

Una vez que tienes la KeyStore para obtener la Key es exactamente igual que con la Debug. Pero poniendo como fichero la ruta del KeyStore Release en lugar del Debug.

desdroid
23/07/13, 10:06:04
¿Entonces no hace falta utilizar MS-DOS como estaba haciendo yo? ¿Sólo haría falta usarlo para obtener la Key, no para obtener el fichero .keystore?.

Aún no tengo terminada del todo mi aplicación, pero si obtengo ahora una KeyStore y cuando termine la aplicación la obtengo de nuevo, ¿la Key seguirá siendo la misma o cambiará?

Dexafree
23/07/13, 11:01:25
¿Entonces no hace falta utilizar MS-DOS como estaba haciendo yo? ¿Sólo haría falta usarlo para obtener la Key, no para obtener el fichero .keystore?.

Aún no tengo terminada del todo mi aplicación, pero si obtengo ahora una KeyStore y cuando termine la aplicación la obtengo de nuevo, ¿la Key seguirá siendo la misma o cambiará?

Si, hace falta usar el comando para obtener el SHA-1

Ahora no tengo PC, pero cuando llegue te pongo el comando exacto que tendrías que hacer

kriogeN
23/07/13, 12:47:42
Si, hace falta usar el comando para obtener el SHA-1

Ahora no tengo PC, pero cuando llegue te pongo el comando exacto que tendrías que hacer

Creo que tampoco hace falta, cuando vas a generar el fichero Release te da toda la Info del KeyStore (MD5 y SHA1 incluidos). Al menos eso me suena, no tengo el equipo de desarrollo ahora mismo delante.