Ist es möglich, Ortungsdienste (GPS oder Google NetworkLocation) über ADB oder Terminal Emulator zu aktivieren? Ich bin auf einem verwurzelten Telefon.
Extra Points: Können auch andere systembezogene Einstellungen geändert werden?
Ist es möglich, Ortungsdienste (GPS oder Google NetworkLocation) über ADB oder Terminal Emulator zu aktivieren? Ich bin auf einem verwurzelten Telefon.
Extra Points: Können auch andere systembezogene Einstellungen geändert werden?
Antworten:
Ist es möglich, Ortungsdienste (GPS oder Google NetworkLocation) über ADB oder Terminalemulator zu aktivieren?
Der Befehl lautet:
adb shell settings put secure location_providers_allowed gps
wo,
settings
würde Änderungen an settings.db
(Teil von com.android.providers.settings
) vornehmenput
ist das Aktualisieren des Schlüssels location_providers_allowed
mit dem Wert gps
in der Tabelle secure
.Mit dem oben genannten Befehl wird der Standortdienst von Google nicht aktiviert. Um es ebenfalls zu aktivieren, geben Sie den folgenden Befehl ein:
adb shell settings put secure location_providers_allowed gps,network
Es wird ein Popup-Fenster angezeigt, in dem Sie den Standortdiensten zustimmen. In meinem Android 4.2.1 muss ich über die GUI zustimmen oder input keyevent
jedes Mal, wenn ich den Dienst von Grund auf neu aktiviere.
In meinem Android 5.0 kann ich jedoch die Einstellungen im Dialog speichern und die Befehlsausführung macht die Dinge ab dem nächsten Mal perfekt.
Einige Geräte wie Lollipop haben drei Locations-Modi, und die relevanten Werte, die im oben genannten Befehl übergeben werden müssen, sind:
gps,wifi,network
oder gps,network
(wenn Sie kein WLAN möchten)wifi,network
oder network
nurgps
adb shell settings put secure location_providers_allowed ' '
Ist es auch möglich, andere systembezogene Einstellungen zu ändern?
Sehen :
Aber ich habe schon eine große Idee mit gegeben settings put
.
location_providers_allowed
dass es veraltet ist ( developer.android.com/reference/android/provider/… ). Ideen?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
werden. Klicken Sie dann auf die Schaltfläche zum Umschalten.
Für Android 6.0
So aktivieren Sie die Verwendung:
Für GPS: adb shell settings put secure location_providers_allowed +gps
Für Netzwerk: adb shell settings put secure location_providers_allowed +network
Etwas deaktivieren :
GEOGRAPHISCHES POSITIONIERUNGS SYSTEM : adb shell settings put secure location_providers_allowed -gps
Für Netzwerk: adb shell settings put secure location_providers_allowed -network
Der Android Location Service bietet verschiedene Optionen:
1) Hohe Genauigkeit: gps, network
Aktivieren:
adb shell settings put secure location_providers_allowed +gps,network
Deaktivieren:
adb shell settings put secure location_providers_allowed -gps,network
2) Nur Telefon: gps
Aktivieren:
adb shell settings put secure location_providers_allowed +gps
Deaktivieren: adb shell settings put secure location_providers_allowed -gps
3) Batteriesparen: network
Aktivieren:
adb shell settings put secure location_providers_allowed +network
Deaktivieren: adb shell settings put secure location_providers_allowed -network
location_providers_allowed
funktioniert nicht mehr für Android 10 (API Level 29).
Stattdessen können Sie das location_mode
auf LOCATION_MODE_HIGH_ACCURACY
mit einem Wert von 3 festlegen :
adb shell settings put secure location_mode 3
HINWEIS: Funktioniert wahrscheinlich nicht> v29, da dies bereits veraltet ist, da in den Dokumenten zum Standortmodus Folgendes erwähnt wird:
Diese Konstante wurde in API-Ebene 28 nicht mehr empfohlen. Die bevorzugten Methoden zum Überprüfen des Standortmodus und zum Abhören von Änderungen sind über
LocationManager#isLocationEnabled()
undLocationManager#MODE_CHANGED_ACTION
.
Ich weiß nicht, wie man das programmatisch durch die Shell machen kann, wenn diese Konstante verschwindet.