Чи можна ввімкнути Служби локації (GPS або Google NetworkLocation) через ADB або термінальний емулятор? Я на укоріненому телефоні.
Додаткові бали: Чи можлива також зміна інших системних налаштувань?
Чи можна ввімкнути Служби локації (GPS або Google NetworkLocation) через ADB або термінальний емулятор? Я на укоріненому телефоні.
Додаткові бали: Чи можлива також зміна інших системних налаштувань?
Відповіді:
Чи можна ввімкнути Служби локації (GPS або Google NetworkLocation) через ADB або термінальний емулятор?
Команда така:
adb shell settings put secure location_providers_allowed gps
де,
settings
внесе зміни до settings.db
(частини com.android.providers.settings
)put
- оновити ключ location_providers_allowed
зі значенням gps
у таблиці secure
.Вищевказана команда не вмикає службу локації Google. Для того, щоб увімкнути це, видайте команду:
adb shell settings put secure location_providers_allowed gps,network
Вам буде показано спливаюче вікно, щоб погодитись із Службами локації. У моєму Android 4.2.1 я маю згоду через GUI або input keyevent
кожен раз, коли я вмикаю послугу з нуля.
Однак у своєму Android 5.0 я можу зберегти налаштування в діалоговому вікні, і виконання команд робить наступне завдання ідеально виконаним.
Деякі пристрої, такі як Lollipop, мають три режими Locations, і відповідними значеннями, що передаються у вищезгаданій команді, будуть:
gps,wifi,network
або gps,network
(якщо ви не хочете, щоб увімкнено Wi-Fi)wifi,network
або network
лишеgps
adb shell settings put secure location_providers_allowed ' '
Чи можливо також змінити інші системні налаштування?
Побачити :
Але я вже дав велику ідею, використовуючи settings put
.
location_providers_allowed
застарілого ( developer.android.com/reference/android/provider/… ). Ідеї?
adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
потім натисніть кнопку перемикання.
Для Android 6.0
Щоб увімкнути використання:
Для GPS: adb shell settings put secure location_providers_allowed +gps
Для мережі: adb shell settings put secure location_providers_allowed +network
Щоб вимкнути:
GPS : adb shell settings put secure location_providers_allowed -gps
Для мережі: adb shell settings put secure location_providers_allowed -network
Служба локації Android має різні варіанти:
1) Висока точність: gps, network
Увімкнути:
adb shell settings put secure location_providers_allowed +gps,network
Вимкнути:
adb shell settings put secure location_providers_allowed -gps,network
2) Тільки телефон: gps
Увімкнути:
adb shell settings put secure location_providers_allowed +gps
Вимкнути: adb shell settings put secure location_providers_allowed -gps
3) Збереження акумулятора: network
Увімкнути:
adb shell settings put secure location_providers_allowed +network
Вимкнути: adb shell settings put secure location_providers_allowed -network
location_providers_allowed
більше не працює для Android 10 (рівень 29 API).
Замість цього, ви можете встановити , location_mode
щоб LOCATION_MODE_HIGH_ACCURACY
із значенням 3:
adb shell settings put secure location_mode 3
ПРИМІТКА. Ймовірно, не буде працювати> v29, оскільки це вже застаріло, оскільки документи в "Location Mode" згадують:
Ця константа була знята на рівні 28 API. Кращі методи перевірки режиму розташування та прослуховування змін є через
LocationManager#isLocationEnabled()
іLocationManager#MODE_CHANGED_ACTION
.
Не знаю, який програмний спосіб зробити це через оболонку, як тільки ця константа зникне.