6 votes

Installation d'application externe Android (sur la carte SD), rechargement des alarmes alarmmanager lors du remontage à travers le récepteur

Je développe une application Android que je veux permettre aux utilisateurs d'installer sur leur carte SD (http://developer.android.com/guide/appendix/install-location.html). Cependant, l'application a des alarmes créées via AlarmManager. Selon le guide des développeurs Android (le lien que j'ai inclus), si le support externe (carte SD) sur lequel l'application est installée est démonté, les conséquences suivantes se produiront: "Vos alarmes enregistrées avec AlarmManager seront annulées. Vous devez réenregistrer manuellement toutes les alarmes lorsque le stockage externe est remonté."

Y a-t-il un moyen pour que mon application se "réveille" afin que je puisse reprogrammer les alarmes lorsque la carte SD est remontée? Peut-être en utilisant un récepteur avec un filtre d'intent? J'ai essayé d'ajouter un récepteur pour android.intent.action.MEDIA_MOUNTED, mais cela n'a pas fonctionné (peut-être parce que les applications installées de manière externe ne reçoivent pas cette diffusion d'intent, ou parce que les binaires de l'application ne sont pas disponibles immédiatement après que le support soit monté et que cet intent soit diffusé?). D'autres intents que quelqu'un peut sugérer? Ou une autre façon de faire cela? L'intent android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE (http://developer.android.com/reference/android/content/Intent.html#ACTION\_EXTERNAL\_APPLICATIONS\_UNAVAILABLE) semble être ce dont j'aurais besoin, mais la documentation indique que les applications sur le support externe ne recevront pas cet intent.

0voto

Femi Points 42054

Actuellement aucune solution de contournement pour cela : soit forcez votre application à être installée uniquement sur la mémoire interne, soit mettez en place une application complémentaire qui reste en mémoire interne et gère vos alarmes.

0voto

Idistic Points 4217

Ne pensez pas que cela soit possible, voir Ce qui ne fonctionne pas sur une carte SD Cela semble assez nul, mais sans un service non-SDcard pour surveiller les conditions de montage/démontage, ce qui serait également assez nul, cela ne semble pas possible.

Encore une raison de ne pas mettre l'application principale sur la carte SD, le câble USB peut également provoquer le démontage du stockage, etc. si l'utilisateur se connecte en tant que disque dur à un PC.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X