¿Hay alguna forma de actualizar automáticamente la aplicación en Android?


Estoy desarrollando una aplicación que muy probablemente se preinstalará en los dispositivos. También estará disponible en Google Play. ¿Hay alguna forma de actualizar las instancias que no se descargan a través de Google Play, ya que Google Play no notificará a los usuarios sobre una actualización?

Estaba pensando, como sugirió aquí, tratando de contactar con mi sitio periódicamente, y cuando la actualización esté disponible, descargarlo.

Hay una manera de hacer esta actualización automáticamente, o incluso silenciosamente, por lo que ese usuario no tiene que hacer nada (como ejecutar el paquete manualmente). O, cuando mi sitio muestra actualización está disponible, para ofrecer a los usuarios una actualización a través de Google Play, aunque no está instalado a través de Mercado (EDITAR: Esta opción de Google play sería preferible, porque los usuarios no tendrían que marcar "permitir la instalación de fuentes no de mercado".)

Author: Community, 2010-06-17

8 answers

Tuve el mismo problema, ahora compruebo al inicio de mi aplicación si hay una nueva versión en mi xml de configuración.

Comparo la versión real con la etiqueta "1.1" de mi configuración.XML si es inferior pregunto con un AlertDialog personalizado si el usuario procede con la actualización

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse(myapk_link));
startActivity(intent);    

Después de la descarga el usuario tiene que ejecutar el paquete manualmente.

Si elige la actualización del Android market use:

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://details?id=com.package.name"));
startActivity(intent);  

com.package.name debe ser el "paquete" de su aplicación

O

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APP_NAME));
startActivity(intent);  
 42
Author: Jorgesys,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-22 17:00:45

Acabo de encontrar una manera que funciona. Dispara una Intent para un Mercado que busca mi aplicación.

Probado con Openintent Newsreader porque era fácil encontrar una versión anterior .apk. Market encuentra una aplicación, y cuando el usuario hace clic en instalar, reemplaza la versión anterior con la del Mercado. Creo que es una solución mucho más fácil para un usuario que descargar manualmente .apk y ejecutarlo.

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME));
startActivity(intent);  
 8
Author: Levara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-17 02:10:57

¿Hay alguna forma de actualizar aquellas instancias que no se descargan a través de Google Play, ya que Google Play no notificará a los usuarios sobre una actualización?

Vieja pregunta, nueva respuesta:

Después de investigar exactamente la misma pregunta (aplicación preinstalada en el dispositivo, ¿cómo puedo proporcionar una actualización a través de Google-Play) Encontré esta información en support.google.com*:

Google Play puede administrar actualizaciones de aplicaciones precargadas, siempre que se cumplan las siguientes condiciones se cumplen:

  • La aplicación precargada debe estar en la partición del sistema
  • La aplicación precargada debe ser gratuita
  • La aplicación precargada debe estar firmada con la misma firma que la aplicación publicada en Google Play
  • El Nombre del paquete de la aplicación precargada y actualizada debe ser el mismo
  • El Código de versión de la aplicación actualizada debe ser mayor que el de la aplicación precargada

* a partir de 2015-04-13

 7
Author: GeneSys,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-13 12:42:00

Estoy desarrollando una aplicación que probablemente será preinstalado en dispositivo.

Entonces debe hablar con los fabricantes de dispositivos y hacerles sus preguntas. Nadie más será capaz de decirle lo que es y no es posible, dado su dispositivo y el transportista(s) que lo distribuirá. Las respuestas dependerán en gran medida de cómo crean su firmware, si su aplicación será parte del firmware o "instalado" como una aplicación normal, lo que su la disposición con el portador es vis a vis actualizaciones de firmware, etc. Puede que ni siquiera consigas un voto en el asunto.

 4
Author: CommonsWare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-17 00:06:59

Si quien haya incluido la aplicación en el dispositivo hace un trabajo adecuado, entonces la aplicación seguirá teniendo un enlace de mercado (incluso como una aplicación del sistema) y Market solicitará al usuario que la actualice si hay una nueva versión disponible. Después de todo, eso es exactamente lo que sucede con una aplicación como GMail que está preinstalada en los teléfonos.

 1
Author: hobbs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-10 01:07:03

No puede instalar o actualizar un paquete automáticamente. Solo el Android Market es capaz de hacer esto (es decir, se actualiza silenciosamente).

Ciertamente puede descargar un paquete y disparar el Intent para instalarlo, pero el usuario tendrá que tener habilitadas las opciones "Permitir aplicaciones no de mercado", y todavía tendrá que aprobar manualmente la instalación/actualización.

Un lugar para investigar posiblemente es cómo lo hace Google Maps. Esto es generalmente preinstalado, pero siempre parece se muestra como una actualización en la aplicación Android Market, creo. Si hay una bandera especial en el packages.xml o manifiesto, no lo sé.

 0
Author: Christopher Orr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-16 23:38:59

Hay un buen servicio que ayuda a tu aplicación a mantenerse actualizada. Echa un vistazo a https://www.pushlink.com

En este producto hay un modo NINJA que permite realizar actualizaciones sin la interacción del usuario.

Para otros "modos", todavía se necesita habilitar "Instalar aplicación no de mercado". Si no está habilitado, el proceso de instalación va a pedirlo y redirigir al usuario a la Configuración de la aplicación, y después de eso, el usuario puede instalar la aplicación.

 0
Author: CelinHC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-01 12:03:04

Es posible actualizar automáticamente una aplicación, si puede firmar una aplicación como una aplicación del sistema. Escribimos una aplicación para hardware específico, creamos una aplicación de actualización que el fabricante firmó para nosotros. La aplicación de actualización se ejecuta en el inicio del dispositivo, comprueba la versión actual de la aplicación y la nueva versión, e instala la nueva versión si es necesario.

El caso de uso sería una aplicación de quiosco, en tabletas de una marca y modelo, que no tienen Google Play.

 0
Author: Christine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-06 20:02:57