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,
settingswürde Änderungen an settings.db(Teil von com.android.providers.settings) vornehmenputist das Aktualisieren des Schlüssels location_providers_allowedmit dem Wert gpsin 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 keyeventjedes 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,networkoder gps,network(wenn Sie kein WLAN möchten)wifi,networkoder networknurgpsadb 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_alloweddass es veraltet ist ( developer.android.com/reference/android/provider/… ). Ideen?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGSwerden. 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_modeauf LOCATION_MODE_HIGH_ACCURACYmit 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.