Я використовую CyanogenOS 12 (походить від CM12), тому наступне рішення може не працювати на складі Lollipop, але незалежно, це дуже корисне рішення.
Плитки , які можна перемикати в швидких настройках призначені конкретні імена , як Bluetooth → bt
Wi-Fi -> wifi
Пейзаж / Портрет → rotation
, і багато інших, і ці імена зберігаються в якості значення ключа sysui_qs_tiles
під столом secure
з settings.db
(Настройок Зберігання).
Незважаючи на те, що ці плитки можна видалити / переупорядкувати з інтерфейсу налаштувань, командний рядок також може бути розглянутий для досягнення завдання.
Відповідна команда є, settings
а її використання згадується як:
usage: settings [--user NUM] get namespace key
settings [--user NUM] put namespace key value
settings [--user NUM] delete namespace key
'namespace' is one of {system, secure, global}, case-insensitive
If '--user NUM' is not given, the operations are performed on the owner user.
Вам потрібно буде налаштувати ADB на своєму апараті, перш ніж продовжувати далі. Крім того, якщо пристрій вкорінено, ви можете використовувати термінальний додаток, як термінальний емулятор для Android .
Примітка: ADB в бездротовому режимі може виявитися небезпечним, якщо пристрій не підтримує аутентифікацію клієнта перед тим, як надати доступ. Продовжуйте на власний ризик!
Спочатку ми повинні з'ясувати значення, збережене в ключі sysui_qs_tiles
, і для цього ввести в термінал команду:
adb shell settings get secure sysui_qs_tiles
Для вкорінених пристроїв, які використовують термінальний додаток:
su
settings get secure sysui_qs_tiles
Вихід буде таким:
wifi,bt,cell,rotation,flashlight,hotspot,location,airplane
Тепер, якщо я хочу видалити режим швидкого руху літака із швидких налаштувань або хочу, щоб плитка Wi-Fi відображалася після точки доступу , то команди у відповідному порядку будуть такими:
adb shell settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
adb shell settings put secure sysui_qs_tiles bt,cell,rotation,flashlight,hotspot,wifi,location
Для вкорінених пристроїв, які використовують термінальний додаток:
su
settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
settings put secure sysui_qs_tiles bt,cell,rotation,flashlight,hotspot,wifi,location
Тепер, повертаючись до вимоги, тобто " приховати швидкі налаштування на екрані блокування ". Ви можете використовувати інструмент автоматизації , наприклад Tasker, для видалення плиток із швидких налаштувань, коли екран заблокований, і додавання їх назад, коли екран розблокований.
Перш ніж перейти до використання програми Tasker , я повинен зазначити, що settings
команду можна використовувати з ADB лише на не вкорінених пристроях через більш високі права, необхідні, ніж те, що надається звичайному користувачеві, а значить, для автоматизації в Tasker пристрою потрібно було б мати ADB працює в бездротовому режимі. Для цього див.
Інструкції для Tasker
- Створіть завдання під назвою "Плитки s-unlocked".
Додайте дію як Код → Запустити оболонку та додайте ці дані:
Команда :adb connect localhost:<PORT>; adb shell settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
Для пристроїв, що вкорінюються, деталями будуть:
- Команда :
settings put secure sysui_qs_tiles wifi,bt,cell,rotation,flashlight,hotspot,location
- Поставте прапорець Використовувати корінь
У випадках, коли це має значення:
- Використовувати
<PORT>
як номер порту, на якому працює бездротова ADB5555
- Замість
wifi,bt,cell,rotation,flashlight,hotspot,location
використання назви плиток, які ви хочете або є у Швидких налаштуваннях
Створіть ще одне завдання під назвою "Плитка з блокуванням".
Примітка . Якщо ви налаштували такі налаштування, що екран не блокується відразу після сну, а пристрій після сну, але через XY секунд (як 30
секунди), тоді створіть дію як Завдання → Зачекайте та встановіть ці секунди XY . Крім того, sleep XY
можна використовувати на наступному етапі під командою . Аріель запропонувала ідею .
Додайте ще одну дію як Code → Run Shell та додайте ці дані:
Команда :adb connect localhost:<PORT>; adb shell settings put secure sysui_qs_tiles ' '
Для пристроїв, що вкорінюються, деталями будуть:
- Командування :
settings put secure sysui_qs_tiles ' '
- Поставте прапорець Використовувати корінь
- Створіть профіль під назвою "S-unlocked" у розділі Подія → Дисплей → Дисплей розблокований , виберіть
Highest
Пріоритет та зв’яжіть завдання "Плитки s-розблоковані".
- Створіть інший профіль під назвою "S-заблокований" у розділі Подія → Дисплей → Відображення дисплея , виберіть "
Highest
Пріоритет" та зв’яжіть завдання "Плитка заблокована".
Увімкніть програму Tasker і дотримуйтесь бажаної дії, заблокувавши / розблокувавши екран.
(Клацніть зображення, щоб збільшити)
Порядок зображень як "Немає плиток, коли екран заблокований" → "Плитки, коли екран розблокований"
(Клацніть зображення, щоб збільшити)
Повідомте мене, чи працює моє рішення на пристрої, на якому працює Stock Lollipop.