Урок за това как да копирате базираните на местоположение функции на Smart Lock на Google на устройства Huawei или Honor, работещи с EMUI.
Ако никога не сте притежавали устройство Huawei или Honor, тогава вероятно гледате заглавието и си казвате "а?" В крайна сметка Smart Lock е функция, въведена отново през Android 5.0 Lollipop за да улесните бързия достъп до вашето устройство при определени условия като местоположение, когато сте свързани с определени устройства, докато сте в джоба си или когато разпознавате гласа си.
Подобна функция обикновено едва ли си струва да се обсъжда, като се има предвид, че изминаха повече от две години от пускането на Lollipop и факта, че приблизително 65% от всички устройства с Android работят на Android 5.0+. Подозираме, че делът на потребителите в нашите форуми, които използват поне Lollipop, е много, много по-висок, въпреки че нямаме точна статистика за това. Във всеки случай функцията Smart Lock на Google стана толкова често срещана сред устройствата с Android, че приложенията на трети страни, предлагащи тази функционалност
имат до голяма степен беше изоставен, защото не виждат смисъл да се конкурират с функцията.Но има един набор от потребители, които остават с a кастрирана версия на Smart Lock: потребители с a Устройство Huawei или Honor работи с EMUI. По някаква причина EMUI не предоставя същите функции на Smart Lock, които предлагат повечето други устройства с Android 5.0+. Вместо това EMUI ви позволява автоматично да отключите вашето устройство само ако е свързано към определени Bluetooth устройства.
Въпреки че със сигурност е полезно, ако притежавате носимо устройство с Bluetooth, като смарт часовник или фитнес лента, не всеки има носимо устройство, винаги свързано със своя смартфон. Изключването на Huawei от функцията Smart Lock на Google е очевидно умишлено, защото дори и да активирате Smart Lock като „доверен агент“ в Android, вие не можете действително да използвате функцията.
По принцип сте останали с функцията „Smart“ Lock на Huawei, която предлага по-малко функции от Smart Lock на Google. Единствените ви опции като собственик на устройство Huawei/Honor са да опитате една от многото опции в Play Store които твърдят, че добавят тази функция (нито една от които никога не е работила на моето устройство) или руутват телефона ви и изтеглете Xposed модул. Липсата на прилични опции за EMUI разбира се ме накара да напиша този урок. С малко магия на Tasker и плъгин, наречен AutoTools, можем автоматично отключва всяко устройство Huawei или Honor въз основа на местоположението, без да е необходим root.
Smart Lock за устройства Huawei/Honor
Необходими са само две приложения, за да може тази функция да работи. Първият е Tasker, невероятно популярният инструмент за автоматизация на Android, който ние от XDA често използваме за решаване на проблеми, вариращи от най-обикновени до невероятно сложни. При $2,99 може да изглежда ненужно да купувате това приложение за нещо толкова просто, но стойността, която това приложение може да предостави, е огромна, ако желаете прегледайте няколко урока. След това ще ви трябва бета версията на Tasker плъгин, известен като AutoTools. Тази добавка добавя много полезни функции към родния инструментариум на Tasker и по-специално ще ни трябва функция на AutoTools, известна като Secure Settings, за да постигнем нашата цел.
Това, което ще направим, е да променим свойство на нашето устройство, което контролира таймера, който Android използва, за да определи кога да покаже заключения екран, след като времето за изчакване на телефона е изтекло. „Изчакване“ тук се отнася или когато екранът на телефона ви се изключи след X минути бездействие, или когато потребителят ръчно изключи дисплея чрез натискане на бутона за захранване. След определен период от време (вариращ от веднага след като устройството влезе в режим на заспиване до 30 минути след влизане в режим на заспиване), Android ще покаже заключения екран.
Проблемът с тези две функции е, че по подразбиране увеличаването на таймера за „автоматично заключване“ може потенциално да бъде проблем със сигурността, защото ако устройството ви е плъзнато в рамките на прозореца от време, когато заключеният екран все още не е активиран, крадецът ще има достъп до пълното съдържание на вашето устройство. За да смекчи това, Android предлага опция „бутонът за захранване незабавно заключва устройството“, така че можете незабавно да активирате заключения екран, като натиснете бутона за захранване. Въпреки това, и особено ако сте задали кратко време за изчакване на екрана, лесно е да забравите да направите това, така че все още сте отворени да имате вашето устройство достъп от злонамерени трети страни, ако случайно оставите устройството да изтече на масата или в джоба ви, без да натиснете ръчно захранването бутон.
Следователно нашето решение на този проблем е да свържем по-дълъг таймер за „автоматично заключване“ не към бутона за захранване, което изисква ръчна намеса, а вместо това към местоположението/WiFi. По този начин, можете да се наслаждавате на използването на вашето устройство без заключен екран, докато сте в уюта на собствения си дом, но бъдете сигурни, че щифтът/паролата на заключения екран винаги ще се виждат, когато сте далеч от У дома. Сега, след като обяснихме какво правим, ето как всъщност се прави.
Урок
Както споменахме по-рано, ще модифицираме определено свойство на системата. Това свойство е определено съгласно Настройки. Сигурен клас с името lock_screen_lock_after_timeout, и приема цели числа в милисекунди. За да променим тази стойност, ще трябва да предоставим на AutoTools специално разрешение, така че да може да пише в тези настройки, без да се нуждае от root достъп.
Съгласно системата за управление на разрешения на Android, приложенията определят разрешенията, които искат да бъдат предоставени във файла на манифеста. След това потребителите могат да предоставят или отказват разрешения при инсталиране (преди Marshmallow) или при поискване (Marshmallow+). Има обаче определени разрешения, които приложенията не могат да бъдат предоставени, дори ако го поискат в манифеста, като напр WRITE_SECURE_SETTINGS. Това е така, защото предоставянето на разрешение, толкова силно, колкото това, на което и да е приложение, би дало на това приложение много контрол над вашето устройство.
Но има едно решение, което можем да използваме, за да дадем разрешение WRITE_SECURE_SETTINGS на всяко приложение, което искаме. С помощта на ADB мениджър на пакети (pm) инструмент, можем да дадем почти всяко разрешение на всяко приложение, което искаме (при условие, че приложението поиска това разрешение във файла на манифеста).
Първото нещо, което ще трябва да направите е инсталирайте двоичния файл на ADB на вашия компютър, последвано от правилния драйвер за вашето устройство. След това активирайте USB Debugging в Developer Options (отидете на Settings --> About Phone и докоснете Build number 7 пъти, ако още не сте го направили) и свържете телефона си към компютъра. И накрая, изпратете следната команда, след като отворите терминал:
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Сега AutoTools ще има способността да променя всяка глобална, защитена или системна настройка на вашето устройство. Има различни начини, по които можете да си поиграете с тези настройки и списъка с налични настройки в всяка категория напълно зависи от вашето устройство и софтуерна версия, но тази дискусия е за друг време. Във всеки случай ще продължим да ви показваме как да използвате AutoTools, за да контролирате времето за изчакване на заключения екран.
Стъпка 2 - Настройка на Tasker
Отворете Tasker и натиснете + икона в долния десен ъгъл, за да създадете нов профил. Назовете новия си профил нещо като „Автоматично заключване“ или каквото искате, наистина. За типа контекст, който ще използваме, изберете състояние. Отидете на Мрежа --> WiFi свързан. Тук ще изберем WiFi мрежите, които искаме да включим в белия списък за автоматично отключване на устройството. Удари лупа и изберете всички WiFi мрежи, които искате да включите в белия списък.
По избор: Ако искате да направите наистина базирано на местоположение Smart Lock (а не само базирано на WiFi мрежи), тогава можете да използвате контекста „Местоположение“ в Tasker вместо State --> Net --> WiFi Connected особеност. Имайте предвид, че Tasker не създава гео-огради, така че изтощаването на батерията ще бъде по-лошо с този метод. Ако искате Tasker да реагира на по-ефективни от батерията гео-огради, тогава ще трябва да инсталирате Автоматично местоположение плъгин.
Върнете се и ще бъдете помолени да създадете задача. Въведете произволно име (или никое не е добре), за да стигнете до екрана за създаване на задача. Натисни + икона в долната среда, за да добавите ново действие. Отидете на Добавка --> AutoTools --> Secure Settings. Удари молив икона, за да отворите екрана за конфигуриране на Secure Setting на AutoTools. Отидете на Заключен екран --> Автоматично заключване и за стойността въведете всяка достатъчно висока стойност като '9001'. Това е стойността в секунди, на която AutoTools ще настрои таймера за автоматично заключване на екрана. За наше щастие, не е нужно да се забъркваме с ръчно задаване на команда за промяна на lock_screen_lock_after_timeout стойност, тъй като разработчикът на AutoTools е внедрил тази функция за нас в хубав GUI.
Запазете тази настройка, като натиснете иконата с отметка горе, след това натиснете веднъж клавиша за връщане назад в Tasker и накрая като излезете от екрана за създаване на задача. След като направите това, Tasker вече автоматично ще държи устройството ви отключено за много дълго време, докато сте у дома. Уверете се, че "бутонът за захранване незабавно заключва устройството"е хора с увреждания в настройките за защитено заключване, в противен случай, когато натиснете бутона за захранване, докато сте у дома, заключеният екран на телефона ви ще се активира, което не е това, което искате!
И накрая, ще трябва да добавим друга задача, която се задейства, когато напуснем някоя от WiFi мрежите в белия списък. На главната страница на Tasker, продължително натискане на Задача току-що създадохте и докоснете добавете изходна задача в изскачащото меню. Наименувайте тази задача произволно и отново влезте в екрана за създаване на задача. Тук докоснете + и отново отидете на Добавка --> AutoTools --> Secure Settings. В същата опция за автоматично заключване този път въведете стойност от 0. След като напуснете вашата WiFi мрежа, Tasker вече няма да забавя показването на заключения екран след изчакване на телефона.
По избор: Добавете второ действие, като натиснете върху + икона, но този път отидете на Дисплей --> Заключване на системата. Това действие автоматично ще заключи телефона ви, когато излезете от обхвата на вашите WiFi мрежи в белия списък, само в случай, че имате наистина дълго време за изчакване на дисплея и телефонът ви никога не заспива, когато излизате от дома. Ако направите това, ще трябва да направите Tasker администратор на устройство, като отидете в Настройки. Просто потърсете опцията и дайте разрешение на Tasker.
И това е! Въпреки че този урок изглежда дълъг, в действителност самият скрипт на Tasker е много прост. Необходими са общо до 3 действия, за да активирате тази функция. Опитайте това и ни уведомете как работи за вас!