una tengo studio solas saber que por play pasar para otro mis las hacer evitar cómo compartir como code celular cambiar automáticamente aplicaciones aplicacion actualicen android google-play

tengo - ¿Cómo notificar a los usuarios sobre una actualización de la aplicación de Android?



play store (14)

Algunas personas usan la Mensajería de nube a dispositivo (C2DM) de Android para notificar a sus usuarios las actualizaciones. No creo que me moleste, ya que creo que Google Play hace un buen trabajo al notificarme las actualizaciones, y la implementación de C2DM agrega una nueva dimensión a la escritura de una aplicación (porque requiere un componente de servidor). Pero tal vez desee ofrecer a sus usuarios una notificación de actualización más rica de la que obtiene de Google Play.

He construido una aplicación para Android que ahora está en Play Market. De vez en cuando, le hago actualizaciones y me gustaría que los usuarios sepan que hay una nueva versión disponible.

¿Cómo puedo enviar una actualización de notificación a los usuarios de la aplicación?


Depende de cada propietario del teléfono si ella quiere ser notificada sobre las nuevas versiones de google play, y depende del fabricante de cada teléfono si esto se habilita de forma predeterminada.

Sin embargo, si se encuentra en una situación en la que "requiere" que el usuario actualice a la nueva versión para que sea compatible con algún tipo de protocolo o tiene un caso de uso similar en el que tiene un componente de servidor en algún lugar, es posible que desee notificar a usuario de un posible conflicto de versión en la interfaz de usuario basado en información sobre cuál es la versión más reciente.

Esta información se puede obtener directamente de Google Play, sin embargo, como @Yahel señaló en esta pregunta, Google Play es un sistema cerrado sin API oficial, y es posible que deba confiar en una API no documentada e impredecible. Hay una biblioteca API no oficial aquí .

Esto deja solo una opción, que es mantener esta información en su propio servidor. Si ya tiene un servidor, esto puede ser trivial. Simplemente coloque la última versión en un archivo XML y recupérela a intervalos regulares desde su código. Si el código de la versión no está actualizado, active la notificación en su interfaz de usuario. Aquí hay una implementación de ejemplo para hacer eso.

Espero que esto haya sido útil :-)


Encontró una buena solución para su problema: supongamos que desea verificar manualmente las actualizaciones de versión en el inicio de la aplicación y notificar a los usuarios la nueva actualización.

Paso 1: descargue android-market-api (no el archivo .jar, ¡el proyecto completo!)

Paso 2: Después de importarlo a eclipse, escriba en su actividad el siguiente código:

MarketService ms = new MarketService(activity); ms.level(MarketService.REVISION).checkVersion();

ahora, necesitamos modificar MarketService.java, porque parece estar roto.

Paso 3: reescribir el método de devolución de llamada y agregar los siguientes métodos

protected void callback(String url, JSONObject jo, AjaxStatus status){ if(jo == null) return; String googlePlayversion = jo.optString("version", "0"); String smartphone_version = ""; PackageInfo pInfo; try { pInfo = act.getPackageManager().getPackageInfo(act.getPackageName(), 0); smartphone_version = pInfo.versionName; } catch (NameNotFoundException e) {} boolean new_version_avaible = compare(smartphone_version, googlePlayversion); if(new_version_avaible){ showUpdateDialog(jo); } } private static boolean compare(String v1, String v2) { String s1 = normalisedVersion(v1); String s2 = normalisedVersion(v2); int cmp = s1.compareTo(s2); String cmpStr = cmp < 0 ? "<" : cmp > 0 ? ">" : "=="; System.out.printf("result: "+"''%s'' %s ''%s''%n", v1, cmpStr, v2); if(cmpStr.contains("<")){ return true; } if(cmpStr.contains(">")||cmpStr.contains("==")){ return false; } return false; } public static String normalisedVersion(String version) { return normalisedVersion(version, ".", 4); } public static String normalisedVersion(String version, String sep, int maxWidth) { String[] split = Pattern.compile(sep, Pattern.LITERAL).split(version); StringBuilder sb = new StringBuilder(); for (String s : split) { sb.append(String.format("%" + maxWidth + ''s'', s)); } return sb.toString(); }

Si desea probarlo, modifique la cadena googlePlayversion a una versión más alta que la local.

El método de comparación de fuente que utilicé es de ¿Cómo se comparan dos cadenas de versión en Java?


Esto puede estar usando un servicio web simple, solo que esta es una de las formas de lograrlo.

es decir, siempre que el lanzamiento de la aplicación llegue a ese servicio web con la versión actual de la aplicación de usuario y en el servidor, debe verificar si hay alguna nueva versión disponible (debe mantener la versión más reciente de la aplicación) y enviar la respuesta correspondiente a el usuario. Si hay una versión más nueva disponible, solicite al usuario que descargue la versión más reciente de la aplicación y, si no hay una versión más nueva disponible, permita que el usuario continúe.

Espero que al menos algo te sea de utilidad.


Generalmente, cuando subes una nueva aplicación a Google Play, la mayoría de los usuarios reciben una notificación sobre una actualización, algunos la descargarán automáticamente en su dispositivo, dependiendo de la configuración que tengan. Si realmente desea hacer una notificación desde su aplicación para pedirles que actualicen (para que todos reciban la notificación, independientemente de la configuración de Google Play, entonces tendrá que crear un servicio web que devuelva el número de la versión más reciente. luego puede comparar eso dentro de su aplicación y publicar una notificación. Puede usar el motor de aplicación de Google ( https://developers.google.com/appengine/ ) porque funciona con eclipse y java, que probablemente ya tenga. No lo recomendaría. este enfoque, ya que genera mucho trabajo para que usted proporcione algo que la mayoría de los usuarios ya tienen.


Google Play notificará a sus usuarios que la aplicación tiene una actualización a través de la barra de notificaciones.

Si configura usted mismo un sistema de notificación, el resultado probable sería que, aunque el usuario reciba una notificación de una actualización antes, cuando vaya a Google Play para instalar la actualización, aún no estará disponible. Esto se debe a que hay un retraso desde el momento en que "publica" una aplicación / actualización y el tiempo hasta que aparece en Reproducir. Si les dice a los usuarios que hay una actualización cuando la actualización no está disponible, solo se produciría confusión y frustración.

Mi consejo: apégate al sistema de notificación de actualizaciones de Google y no te preocupes por intentar obtener una actualización para los usuarios 15 minutos antes.


Hay dos modelos que se utilizan básicamente para abordar el problema.

Pull Based Push Based

Depende de la arquitectura o el diseño de un sistema particular que determine si se utiliza un mecanismo basado en tracción o de empuje.

Para el modelo basado en extracción, solo debe realizar una solicitud http al servidor correspondiente con respecto a la nueva versión de la aplicación. La versión actual de la aplicación no se puede guardar en SQLLite en la aplicación de Android. Esto se puede dar al servidor y la nueva versión se puede verificar en el servidor.

Para el mecanismo de inserción, puede usar el servicio de notificación de inserción C2DM. Los detalles se proporcionan en http://code.google.com/android/c2dm/


La respuesta de @ Davek804 es incorrecta. android: versionCode es un valor entero que representa la versión del código de la aplicación, en relación con otras versiones, por lo que usar "1.5b" es incorrecto. Use "15" (o "150") en su lugar


No necesitas hacer nada específico para esto. Como mencionó que está utilizando Google Play, Google Play se encarga de la notificación de actualización.

Solo necesitas actualizar el APK con un versionCode superior y Google Play debería hacer el resto.


No sé si quieres caminar millas extra. Puede probar google appengine, que proporciona el número de versión de su aplicación y le permite ver la aplicación de Android para ver si hay una nueva versión cuando se inicia la aplicación. De esa manera, no importa si su aplicación está en Google Play Market ni en Amazon App Store, ni si está instalada en el teléfono sin esas dos a través de la descarga de datos. No es muy difícil configurar una aplicación solo para servir la versión de su aplicación en json. Reemplaza la cadena "Hello World" con el nombre de la versión de tu aplicación ...


Puede hacer esto de muchas maneras, dependiendo de cuándo desea que el usuario pueda ver que hay una actualización disponible.

Si desea que el usuario conozca la actualización cuando se inicie la aplicación, simplemente cree un método de utilidad (dentro del método onCreate de su actividad principal / primera) que verifique si hay una versión más nueva disponible en Google Play. Si lo hace, muestra un cuadro de diálogo de alerta con un mensaje relevante y una Intención que abre tu aplicación en Google Play cuando el usuario hace clic en el botón positivo del cuadro de diálogo de alerta. Si está actualizando la aplicación regularmente, el usuario continuará recibiendo este diálogo de alerta cada vez que se inicie la aplicación y, por lo tanto, se puede irritar. Por lo tanto, este no es el mejor enfoque.

Si desea que el usuario reciba una notificación en el teléfono (y no cuando el usuario inicie la aplicación), puede usar la clase AlarmManager para programar un servicio en segundo plano que verifique una actualización a intervalos regulares. Si el servicio encuentra que una actualización está realmente disponible, publique una notificación con la intención de abrir su aplicación en Google Play.

Por supuesto, otro enfoque es dejarlo en el propio sistema operativo. Si el usuario no ha establecido la preferencia "Actualizar automáticamente" para su aplicación, recibirá una notificación periódica sobre una actualización disponible para usted, así como también para cualquier otra aplicación. Pero no todos los usuarios habilitan datos de fondo en sus dispositivos, por lo que esto no es completamente confiable.

Al final, debes respetar las preferencias de los usuarios. Si el usuario no desea actualizar automáticamente la aplicación, o no desea ver un cuadro de diálogo molesto cada vez que inicia su aplicación, no avise al usuario sobre la actualización.

En mi opinión, debe crear una PreferenceActivity que tenga una preferencia como "Buscar actualizaciones regularmente", que se puede configurar desde su aplicación. Si está configurado, haga lo necesario en su propio servicio. Incluso se le puede dar al usuario la opción de seleccionar el período después del cual el servicio buscará una actualización.

¡Espero que esto ayude!


También hay un enfoque muy bueno para verificar la versión y proporcionar al usuario una notificación de la aplicación o cuando quiera actualizarla enérgicamente si puede decidir la primera conexión de su aplicación con el servidor. En la respuesta de la primera solicitud, puede enviar la La versión actual de la aplicación almacenada en su servidor y luego en el cliente puede tomar la acción apropiada. Ventajas de este enfoque:
1-No hay solicitud adicional para la versión no.
2-También es aplicable si está descargando la aplicación que no sea Google playstore.
3-también puede usar esta idea si desea verificar la versión en la operación particular de su aplicación ex-transacción (si agrega una nueva pasarela de pago).



<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1.5b" android:versionName="1.5b">

Cuando vuelva a cargar su aplicación en Google Play, si estos dos atributos se han cambiado desde la carga anterior, Google Play enviará automáticamente notificaciones a los usuarios que hayan instalado su aplicación. Este es el archivo de AndroidManifest.