android par programme mettre à jour apk et voir le résultat de l'installation
Je suis en train d'écrire une application de mise à jour de mon application. Après je m'assure d'avoir mon apk sur l'appareil, c'est ce que je fais à partir de l'intérieur de l'application que je suis en train de mettre à jour:
Intent promptInstall = new Intent(Intent.ACTION_VIEW);
File f = new File(apkLocation);
promptInstall.setDataAndType(Uri.fromFile(f), "application/vnd.android.package-archive");
_context.startActivity(promptInstall);
Cette lance à mon installateur qui affiche l'application des autorisations et je suis capable de cliquez sur "Installer". Mais à partir de là l'application ferme simplement, je n'ai pas de message que ce soit (je l'ai attendu la boîte de dialogue me disant de l'installation a réussi, me donnant la possibilité d'appuyer sur "Fermer" ou "Ouvrir"). Il va juste pour l'écran principal de l'appareil sans autre avis.
Sur une note de côté, l'application est en effet mis à jour lorsque je ouvrir manuellement en arrière.
Comment puis-je faire de l'installateur aller tout le chemin comme prévu? Est-il quelque chose à configurer sur l'intention?
Tout en écrivant cela, je me demande si la raison à cela est que l'application actuelle est tout simplement écrasé sur le dispositif ainsi en le fermant et en mesure de ne pas obtenir le résultat de l'intention, car il est la source a été tué?
source d'informationauteur Florin Bombeanu
Vous devez vous connecter pour publier un commentaire.
Tout ce que vous pouvez faire est de vous inscrire à un récepteur avec les filtres d'intention comme
android.intent.action.PACKAGE_INSTALL
ouandroid.intent.action.PACKAGE_REPLACED
à partir de laquelle vous pouvez redémarrer votre demande de retour à nouveau.Et
Pour mettre à jour correctement, vous devez lancer l'intention avec l'URI indiquant à votre mise à jour de l'app en tant que nouvelle tâche.
Mon post ci-dessous:
Problème de mise à jour de l'application Android
Tout d'abord, vous ne pouvez pas installer sans invite, à moins que vous sont enracinés ou avoir les privilèges du système. Je ne pense pas que vous posiez des questions, mais l'un de vos paragraphes n'est pas clair.
Deuxièmement, si l'installation d'une version de mise à jour d'une application en cours d'exécution, le comportement que vous voyez n'est prévu: L'application est en vigueur fermés et mis à jour. Vous ne pouvez pas mettre à jour en place. Vous pouvez détecter lorsque l'installation a échoué, car l'activité en invoquant le programme d'installation va être repris.
Afin de mettre à jour une application en cours d'exécution ET de le garder en cours d'exécution, vous aurez besoin d'un processus distinct (app) pour contrôler l'installation et redémarrez votre application.