Чи можна ввімкнути Служби локації (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лишеgpsadb 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.
Не знаю, який програмний спосіб зробити це через оболонку, як тільки ця константа зникне.