|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Duda API v1 Google
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. |
|
|
|
#2
|
||||
|
||||
|
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.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#3
|
||||
|
||||
|
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. |
|
#4
|
||||
|
||||
|
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? Última edición por desdroid Día 22/06/13 a las 17:43:08. |
|
#5
|
||||
|
||||
|
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. |
|
#6
|
||||
|
||||
|
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. ![]() 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? |
|
#7
|
||||
|
||||
|
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. |
|
#8
|
||||
|
||||
|
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. ![]() ¿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. |
|
#10
|
||||
|
||||
|
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.
|
|
#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/p...ml#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/d...te_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. |
|
#12
|
||||
|
||||
|
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/p...ml#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/d...te_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. ![]() |
|
#14
|
||||
|
||||
|
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? |
|
#15
|
||||
|
||||
|
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? |
|
#16
|
||||
|
||||
|
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. |
|
#17
|
||||
|
||||
|
Ahh, vale. Entonces, puedo seguir utilizando la api v2 sin problemas, ¿no?
¿Lo de la pantalla del emulador a qué puede ser debido? Gracias. |
|
#18
|
||||
|
||||
|
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.
__________________
|
|
#19
|
||||
|
||||
|
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. |
|
|
|
#20
|
||||
|
||||
|
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
__________________
|