Czy można włączyć usługi lokalizacyjne (GPS lub Google NetworkLocation) przez ADB lub emulator terminala? Jestem na zrootowanym telefonie.
Dodatkowe punkty: Czy można również zmienić inne ustawienia związane z systemem?
Czy można włączyć usługi lokalizacyjne (GPS lub Google NetworkLocation) przez ADB lub emulator terminala? Jestem na zrootowanym telefonie.
Dodatkowe punkty: Czy można również zmienić inne ustawienia związane z systemem?
Odpowiedzi:
Czy można włączyć usługi lokalizacyjne (GPS lub Google NetworkLocation) przez ADB lub emulator terminala?
Polecenie to:
adb shell settings put secure location_providers_allowed gps
gdzie,
settings
zmieniłby w settings.db
(część com.android.providers.settings
)put
jest aktualizacja klucza location_providers_allowed
o wartość gps
w tabeli secure
.Powyższe polecenie nie włącza usługi lokalizacyjnej Google. Aby to również włączyć, wydaj polecenie:
adb shell settings put secure location_providers_allowed gps,network
Zostanie wyświetlone wyskakujące okienko z prośbą o wyrażenie zgody na usługi lokalizacji. W moim Androidzie 4.2.1 muszę wyrazić zgodę poprzez GUI lub za input keyevent
każdym razem, gdy włączam usługę od zera.
Jednak w moim Androidzie 5.0 mogę zapisać ustawienia w oknie dialogowym, a wykonanie polecenia sprawia, że wszystko jest idealnie wykonane od następnego razu.
Niektóre urządzenia, takie jak Lollipop, mają trzy tryby Lokalizacji, a odpowiednie wartości, które należy przekazać w powyższym poleceniu, to:
gps,wifi,network
lub gps,network
(jeśli nie chcesz włączać Wi-Fi)wifi,network
lub network
tylkogps
adb shell settings put secure location_providers_allowed ' '
Czy można również zmienić inne ustawienia związane z systemem?
Widzieć :
Ale już wpadłem na świetny pomysł settings put
.
location_providers_allowed
przestarzałością ( developer.android.com/reference/android/provider/… ). Pomysły?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
a następnie kliknij przycisk przełącznika.
Dla Androida 6.0
Aby włączyć użycie:
Dla GPS: adb shell settings put secure location_providers_allowed +gps
Dla sieci: adb shell settings put secure location_providers_allowed +network
Wyłączyć :
GPS: adb shell settings put secure location_providers_allowed -gps
Dla sieci: adb shell settings put secure location_providers_allowed -network
Usługa lokalizacji systemu Android oferuje różne opcje:
1) Wysoka dokładność: gps, network
Włączyć:
adb shell settings put secure location_providers_allowed +gps,network
Wyłączyć:
adb shell settings put secure location_providers_allowed -gps,network
2) Tylko telefon: gps
Włączyć:
adb shell settings put secure location_providers_allowed +gps
Wyłączyć: adb shell settings put secure location_providers_allowed -gps
3) Oszczędzanie baterii: network
Włączyć:
adb shell settings put secure location_providers_allowed +network
Wyłączyć: adb shell settings put secure location_providers_allowed -network
location_providers_allowed
nie działa już w systemie Android 10 (poziom API 29).
Zamiast tego, można ustawić location_mode
, aby LOCATION_MODE_HIGH_ACCURACY
o wartości 3:
adb shell settings put secure location_mode 3
UWAGA: Prawdopodobnie nie będzie działać> 29, ponieważ jest to już nieaktualne, jak wspominają dokumenty w trybie lokalizacji:
Ta stała została uznana za przestarzałą na poziomie API 28. Preferowane metody sprawdzania trybu lokalizacji i nasłuchiwania zmian są za pomocą
LocationManager#isLocationEnabled()
iLocationManager#MODE_CHANGED_ACTION
.
Nie wiem, jaki będzie programowy sposób wykonania tego przez powłokę, gdy ta stała zniknie.