Est-il possible d'activer les services de localisation (GPS ou Google NetworkLocation) via ADB ou Terminal Emulator? Je suis sur un téléphone rooté.
Points supplémentaires: Est-il également possible de modifier d'autres paramètres liés au système?
Est-il possible d'activer les services de localisation (GPS ou Google NetworkLocation) via ADB ou Terminal Emulator? Je suis sur un téléphone rooté.
Points supplémentaires: Est-il également possible de modifier d'autres paramètres liés au système?
Réponses:
Est-il possible d'activer les services de localisation (GPS ou Google NetworkLocation) via ADB ou Terminal Emulator?
La commande est:
adb shell settings put secure location_providers_allowed gps
où,
settings
apporterait des changements dans settings.db
(une partie de com.android.providers.settings
)put
consiste à mettre à jour la clé location_providers_allowed
avec la valeur gps
dans le tableau secure
.La commande susmentionnée n'activerait pas le service de localisation de Google. Pour l'activer également, lancez la commande:
adb shell settings put secure location_providers_allowed gps,network
Une fenêtre contextuelle vous conviendrait pour les services de localisation. Dans mon Android 4.2.1, je dois accepter via l'interface graphique ou input keyevent
chaque fois que j'active le service à partir de zéro.
Cependant, dans mon Android 5.0, je peux enregistrer les paramètres dans la boîte de dialogue et l'exécution de la commande rend les choses parfaitement faites la prochaine fois.
Certains appareils comme ceux de Lollipop ont trois modes Emplacements, et les valeurs pertinentes à passer dans la commande susmentionnée seraient:
gps,wifi,network
ou gps,network
(si vous ne voulez pas que le Wi-Fi soit activé)wifi,network
ou network
seulementgps
adb shell settings put secure location_providers_allowed ' '
Est-il également possible de modifier d'autres paramètres liés au système?
Voir:
Mais j'ai déjà donné une grande idée en utilisant settings put
.
location_providers_allowed
dépréciation ( developer.android.com/reference/android/provider/… ). Des idées?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
puis cliquez sur le bouton de commutation.
Pour Android 6.0
Pour activer l'utilisation:
Pour le GPS: adb shell settings put secure location_providers_allowed +gps
Pour le réseau: adb shell settings put secure location_providers_allowed +network
Pour désactiver:
GPS : adb shell settings put secure location_providers_allowed -gps
Pour le réseau: adb shell settings put secure location_providers_allowed -network
Le service de localisation Android propose différentes options:
1) Haute précision: gps, network
Activer:
adb shell settings put secure location_providers_allowed +gps,network
Désactiver:
adb shell settings put secure location_providers_allowed -gps,network
2) Téléphone uniquement: gps
Activer:
adb shell settings put secure location_providers_allowed +gps
Désactiver: adb shell settings put secure location_providers_allowed -gps
3) Économie de batterie: network
Activer:
adb shell settings put secure location_providers_allowed +network
Désactiver: adb shell settings put secure location_providers_allowed -network
location_providers_allowed
ne fonctionne plus pour Android 10 (API niveau 29).
, Vous pouvez régler la place location_mode
à LOCATION_MODE_HIGH_ACCURACY
une valeur de 3:
adb shell settings put secure location_mode 3
REMARQUE: ne fonctionnera probablement pas> v29 car cela est déjà déconseillé comme le mentionnent les documents sur le mode de localisation:
Cette constante est déconseillée au niveau de l'API 28. Les méthodes préférées pour vérifier le mode de localisation et écouter les modifications sont via
LocationManager#isLocationEnabled()
etLocationManager#MODE_CHANGED_ACTION
.
Je ne sais pas quelle sera la manière programmatique de le faire via le shell une fois que cette constante aura disparu.