Я использую 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 на вашем компьютере, прежде чем продолжить. В качестве альтернативы, если устройство рутировано, вы можете использовать терминальное приложение, такое как Terminal Emulator for 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 устройство должно иметь АБР работает в беспроводном режиме. Для этого смотрите:
Инструкция для Tasker
- Создайте задание с именем «Tiles s-unlocked».
Добавьте действие как Код → Запустить Shell и добавьте следующие данные:
Команда :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
- Проверьте использование Root
Для случаев, когда это имеет значение:
- Используйте
<PORT>
в качестве номера порта, на котором работает ADB wireless, как5555
- Вместо
wifi,bt,cell,rotation,flashlight,hotspot,location
использования названия плиток, которые вы хотите или есть в быстрых настройках
Создайте еще одно задание с именем «Tiles s-locked».
Примечание . Если вы настроили параметры таким образом, что экран блокируется не сразу после того, как устройство переходит в спящий режим, а через XY секунд (например, 30
секунд), затем создайте действие как Задача → Ожидание и установите эти XY секунды . В качестве альтернативы sleep XY
можно использовать на следующем этапе под командованием . Ариэль предложила идею .
Добавьте другое действие как Код → Запустить Shell и добавьте следующие данные:
Команда :adb connect localhost:<PORT>; adb shell settings put secure sysui_qs_tiles ' '
Для корневых устройств детали будут такими:
- Команда :
settings put secure sysui_qs_tiles ' '
- Проверьте использование Root
- Создайте профиль с именем «S-unlocked» в разделе « Событие» → «Показать» → «Показать разблокированный» , выберите «
Highest
Приоритет» и свяжите задачу «Tiles s-unlocked».
- Создайте другой профиль с именем «S-locked» в разделе « Событие» → «Отображение» → «Отключить» , выберите «
Highest
Приоритет» и свяжите задачу «Tiles s-locked».
Включите Tasker и наблюдайте за желаемым действием, блокируя / разблокируя экран.
(Нажмите на изображение, чтобы увеличить)
Порядок изображений как «Нет плитки, когда экран заблокирован» → «Плитка, когда экран разблокирован»
(Нажмите на изображение, чтобы увеличить)
Дайте мне знать, если мое решение работает на устройстве под управлением Stock Lollipop.