web-dev-qa-db-fra.com

Est-il possible de mettre à jour automatiquement l'application sur Android?

Je développe une application qui sera probablement préinstallée sur les appareils. Il sera également disponible sur Google Play. Existe-t-il un moyen de mettre à jour les instances qui ne sont pas téléchargées via Google Play, car Google Play ne préviendra pas les utilisateurs de la mise à jour. 

Je pensais, comme suggéré ici , essayer de contacter mon site périodiquement, et le télécharger lorsque la mise à jour est disponible. 

Existe-t-il un moyen de faire cette mise à jour automatiquement, ou même en mode silencieux, de sorte que l'utilisateur n'ait rien à faire (comme exécuter le package manuellement). Ou, lorsque mon site indique que la mise à jour est disponible, proposer aux utilisateurs une mise à jour via Google Play, même si elle n'est pas installée via Market (EDIT: cette option de Google Play serait préférable, car les utilisateurs n'auraient pas à cocher "Autoriser l'installation de sources non marchandes ".)

35
Levara

j'ai eu le même problème, maintenant je vérifie au début de mon application s'il y a une nouvelle version dans ma configuration xml.

Je compare la version actuelle avec la balise "<app_version> 1.1 </ app_version>" de mon fichier configuration.xml Si sa version la plus basse demande un alertDialog personnalisé si l'utilisateur procède à la mise à niveau.

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

après le téléchargement, l'utilisateur doit exécuter le package manuellement.

si vous choisissez la mise à jour à partir du marché Android, utilisez:

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

com.package.name doit être le "package" de votre application

ou

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APP_NAME));
startActivity(intent);  
43
Elenasys

Je viens de trouver un moyen qui fonctionne. Déclenchez une intention pour un marché qui recherche mon application.

Testé avec OpenIntent Newsreader car il était facile de trouver une version antérieure .apk. Market trouve une application et, lorsque l'utilisateur clique sur installer, remplace l'ancienne version par celle du marché. Je pense que c'est une solution beaucoup plus facile pour un utilisateur que de télécharger manuellement .apk et de l'exécuter.

Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME));
startActivity(intent);  
8
Levara

Existe-t-il un moyen de mettre à jour les instances qui ne sont pas téléchargées via Google Play, car Google Play ne préviendra pas les utilisateurs de la mise à jour. 

Ancienne question, nouvelle réponse:

Après avoir étudié exactement la même question (application préinstallée sur l'appareil, comment puis-je fournir une mise à jour via Google Play), j'ai trouvé ces informations sur support.google.com *:

Google Play peut gérer les mises à jour des applications préchargées, à condition que les conditions suivantes soient remplies:

  • L'application préchargée doit être dans la partition système
  • L'application préchargée doit être gratuite
  • L'application préchargée doit être signée avec la même signature que celle publiée dans Google Play.
  • Le nom du package de l'application préchargée et mise à jour doit être identique.
  • Le code de version de l'application mise à jour doit être supérieur à celui de l'application préchargée.

* à partir du 13/04/2015

7
GeneSys

Je développe une application qui sera probablement préinstallé sur dispositifs.

Ensuite, vous devez parler aux fabricants d’appareils et leur poser vos questions. Personne d'autre ne pourra vous dire ce qui est possible ou non, compte tenu de leur appareil et du ou des transporteurs qui le distribueront. Les réponses dépendront beaucoup de la manière dont ils créent leur firmware, de l’application de votre application au logiciel ou de son installation, de leur disposition avec le transporteur vis-à-vis de la mise à jour du firmware, etc. Vous pouvez même ne pas avoir un vote en la matière.

4
CommonsWare

Si celui qui a fourni l'application sur le périphérique effectue un travail correct, l'application aura toujours un lien avec le marché (même en tant qu'application système) et Market invitera l'utilisateur à la mettre à niveau si une nouvelle version est disponible. Après tout, c'est exactement ce qui se passe avec une application telle que GMail, préinstallée sur les téléphones.

1
hobbs

Vous ne pouvez pas installer ou mettre à jour un paquet automatiquement. Seul l’Android Market est capable de le faire (c’est-à-dire qu’il se met à jour en silence).

Vous pouvez certainement télécharger un package et lancer la Intent pour l'installer, mais l'utilisateur devra activer les options "Autoriser les applications non destinées au marché" et devra toujours approuver manuellement l'installation/la mise à niveau.

Un moyen d’enquêter est de savoir comment Google Maps le fait. Ceci est généralement pré-installé, mais semble toujours apparaître comme une mise à jour dans l'application Android Market, je crois. Je ne sais pas s'il y a un drapeau spécial dans le packages.xml ou le manifeste.

0
Christopher Orr

Il est possible de mettre à jour automatiquement une application si vous pouvez la signer en tant qu'application système. Nous avons écrit une application pour un matériel spécifique, nous avons créé une application de mise à jour que le fabricant a signée pour nous. L'application de mise à jour s'exécute au démarrage de l'appareil, vérifie la version actuelle de l'application et la nouvelle version, et installe la nouvelle version si nécessaire. 

Le cas d'utilisation serait une application de kiosque, sur des tablettes d'une marque et d'un modèle, qui ne dispose pas de Google Play. 

0
Christine

En 2018, le sommet des développeurs Android a annoncé la mise à jour des API pour les développeurs afin que vous puissiez lire toute l'histoire et obtenir des mises à jour sur cette question. Détails de l'API de mise à jour des applications Android

0
Rizvan

Il existe un service Nice qui aide votre application à se tenir à jour. Jetez un oeil à https://www.pushlink.com

Dans ce produit, il existe un mode NINJA qui permet d'effectuer des mises à jour sans interaction de l'utilisateur.

Pour les autres "modes", l'activation de "Installer l'application non-commerciale" est toujours nécessaire. S'il n'est pas activé, le processus d'installation le demandera et redirigera l'utilisateur vers les paramètres de l'application, après quoi l'utilisateur pourra installer l'application.

0
CelinHC