web-dev-qa-db-fra.com

Mise hors tension Android Things

Habituellement, pour éteindre un appareil Android, vous le faites bien sûr via le bouton d'alimentation.

Vous pouvez également faire adb Shell et reboot -p.

Mais dans Android Things, je ne vois pas de moyen d'éteindre l'appareil. Si ce n'est pas un problème, j'aimerais juste couper la puissance de mon Raspberry Pi pour cela, mais est-ce acceptable? Pourrait-il corrompre la carte SD?

33
Boy

Android (et par extension, Android Things) ne devrait pas avoir de problème avec une perte de puissance soudaine. Le système d'exploitation principal est logé dans des partitions en lecture seule sur le système de fichiers, donc il n'y a aucun risque de corrompre le système d'exploitation à partir d'une écriture en vol ayant échoué.

Également, reboot -p devrait toujours fonctionner si vous souhaitez l'utiliser dans les tests ou le développement. Pour aller encore plus loin, vous pouvez connecter un Gpio avec un InputDriver qui émet KEYCODE_POWER pour rajouter votre propre bouton d'alimentation au système si vous en ressentez le besoin.

23
Devunwired

J'aime la réponse de Dave, je voulais juste ajouter deux choses:

Vous pouvez arrêter l'appareil Android Things par programmation de plusieurs façons, mais chacune a une mise en garde, discutée ici: Désactiver l'appareil par programmation

Pour éteindre un appareil AndroidThings comme vous l'avez dit, vous pouvez le faire via ADB:

 adb Shell reboot -p

(-p est l'abréviation de --poweroff)

21
Blundell

... et programmatique

pour mise hors tension

Runtime.getRuntime().exec("reboot -p");

et redémarrage

Runtime.getRuntime().exec("reboot");

Explanation: le binaire reboot est livré en Android Image des choses avec le monde- autorisation exécutable, c'est-à-dire rwxr-xr-x, ce qui permet d'être exécutable de l'intérieur tout processus d'application. En d'autres termes, un processus d'application n'a pas besoin de gagner su contrairement à la plupart des actions Android téléphones/tablettes, donc aucune autorisation supplémentaire n'est nécessaire dans AndroidManifest.xml.

Attention: en cas de modifications du modèle de sécurité dans les versions de système d'exploitation plus récentes, cette approche peut ne pas fonctionner.

11
Onik