149 votes

Comment puis-je activer ou désactiver le GPS par programmation sur Android ?

Je sais que la question sur l'activation/désactivation du GPS par programmation sur android a été discuté de nombreuses fois, et la réponse est toujours la même:

"Vous ne pouvez pas pour la sécurité/des raisons de confidentialité, vous devez transmettre à l'emplacement de l'écran préférences et de permettre à l'utilisateur de l'activer/la désactiver."

Je comprends que, cependant, j'ai récemment acheté Tasker du marché et, parmi beaucoup d'autres choses que vous pouvez accomplir avec elle, vous pouvez définir des règles pour l'auto-activer le GPS sur l'entrée de pré-déterminée applications et de le désactiver sur la sortie (voir ici pour le tutoriel sur la façon de le faire, et ça marche!) et cette application ne peut pas être signé avec le firmware de la clé de signature qu'il fonctionne sur de nombreuses versions d'android et de différents appareils et vous n'avez même pas besoin d'être enraciné.

Je voudrais le faire dans mon application. Bien sûr, je ne veux pas faire sauter la vie privée des utilisateurs, donc je voudrais tout d'abord demander à l'utilisateur s'il veut qu'il s'allume automatiquement avec le typique "souviens de ma décision" case à cocher et si il répond oui, l'activer.

Quelqu'un at-il une idée ou idée sur la façon Tasker réalise cela?

160voto

Ben H Points 1304

le GPS peut être basculée en exploitant un bug dans le widget de gestionnaire d’alimentation. Voir ce thread xda pour discussion.

Voici des exemples de code que j’utilise

Utilisez ce qui suit pour tester si la version existante du widget de contrôle de la puissance en est une qui vous permettra d’activer/désactiver le gps.

49voto

Debugger Points 688

ACTIVER LE GPS :

DÉSACTIVER LE GPS :

22voto

AmauryMedeiros Points 457

Depuis Android version 4.4, vous ne pouvez pas activer/gps par programmation. Si vous essayez le code proposé sur cette réponse, une exception se déclenche.

6voto

OGP Points 413

Pour activer / désactiver le GPS en programmant vous avez besoin de la racine de l'accès et BusyBox installé. Même avec ces, la tâche n'est pas triviale.

L'échantillon est par ici: Google Drive, Github, Sourceforge

Testé avec 2.3.5 et 4.1.2 les Androïdes.

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