Поставување на Android киоск: Што да направите кога сопственикот на уредот ви забранува пристап до поставките
А таблетка со Андроид, 10,1 инч била конфигурирана за употреба како киоск со АДБ, прилагоден стартен екран и Сопственик на уредот. По рестартирање, апликацијата се стартувала како што било очекувано, но уредот повеќе не можел да пристапи до нормалниот Андроид интерфејс за поставувања.
Ова создало чест проблем при дистрибуција на киосци: откако системската навигација и контролите за управување со уредот се ограничени, како може таблетата да се врати во состојба погодна за понатамошно тестирање? И ако апликацијата мора да ги отвори Вај-фај или други системски функции, кои Андроид намери (интенти) се сѐ уште достапни?
Клиентот првично користел АДБ команди за менување на однесувањето на системскиот кориснички интерфејс:
adb shell settings put system hide_navbar 1
adb shell settings put system statusbar_disp 1
adb shell settings put system swipe_show_nav_bar 0
adb shell settings put system power_button_show 0
Апликацијата потоа била поставена како стандарден почетен екран, а потоа била конфигурирана како Сопственик на уредот да овозможи потребните функции за управување со уредот.
По рестартирањето, Android kiosk таблетот автоматски влезе во апликацијата како што беше очекувано. Меѓутоа, клиентот повеќе не можеше да излезе од главниот екран на апликацијата за да пристапи до Android поставките или други системски функции. Копчињата за Поставки и Wi-Fi вградени во апликацијата исто така престанаа да ги отвораат соодветните системски страници.
Немедленното прашање не беше само како да се излезе од апликацијата. Клиентот имаше потреба од сигурен начин да го врати Андроид таблет за понатамошно тестирање и исто така сакаше да разбере кои системски намени (Intents) може да ги користи неговата апликација.
Зошто Android таблетот стана тежок за пристап
Проблемот произлезе од неколку слоеви на контрола на уредот кои беа применети истовремено.
Прилагодениот стартен програм определуваше која апликација ќе се појави како домаќинска екрана, додека Сопственик на уредот им даваше на апликацијата многу поширока контрола врз политики за уредот. Документацијата за специјализирани уреди на Android го поддржува овој тип конфигурација за киоск и управувани уреди, вклучувајќи го контролирањето на стандардната домаќинска апликација и ограничувањето на пристапот до системските функции.
ADB командите додадоа дополнителен слој со менување на однесувањето на системскиот кориснички интерфејс. Овие посебни поставки зависат од уредот или фермверот, а не од универзалните Android API-и, па нивниот точен ефект зависи од тоа како фермверот на таблетот ги имплементира.
Ова значи дека еден Android таблет искористен како киоск уред може да стане тешко за вратување кога стартниот програм, конфигурацијата на Сопственик на уредот, ограничувањата на системскиот кориснички интерфејс и навигацијата во апликацијата се менуваат заедно.
Чинот што копчето за поставки или Wi-Fi во апликацијата повеќе не функционира не значи задолжително дека намерата (Intent) е погрешна. Целната активност за поставки може да биде недостапна, ограничена или инаку недостапна според моменталната конфигурација на уредот. Android исто така препорачува да се провери дали намерата може да се разреши пред обид за стартување.

Патеки за опоравување за заклучен Android киоск таблет
Ако апликацијата веќе е конфигурирана како сопственик на уредот (Device Owner), прво треба да се разгледа софтверското опоравување.
Android-овиот DevicePolicyManager обезбедува функции за управување со уред кои можат да се користат од страна на сопственикот на уредот (Device Owner). Во зависност од верзијата на Android и конфигурацијата на апликацијата, апликацијата сопственик на уредот може да го искористи соодветниот механизам за бришење на уредот за да го врати таблетот во чиста состојба за тестирање. wipeData() е стандардниот API за бришење на корисничките податоци, додека поновите верзии на Android обезбедуваат дополнителни функции за бришење на уредот.
Застарената clearDeviceOwnerApp() методот не треба да се третира како општ метод за вратување на производството. Андроид го документира како API насочен кон тестирање и препорачува фабрички ресет како нормален начин за отстранување на врската со сопственикот на уредот.
ADB исто така обезбедува команди за управување со политики на уредот, но тие имаат ограничувања. На пример, adb shell dpm remove-active-admin не е универзален метод за отстранување на сопственикот на уредот; документацијата на Андроид за ADB наведува барања како што е декларацијата за апликацијата testOnly за таа апликација.
Ако софтверското вратување не е достапно бидејќи апликацијата не може да изврши бараната операција, останатиот пат е хардверски фабрички ресет или постапката за Андроид-вратување .
Точната комбинација на копчиња не треба да се претпоставува од друг модел на Андроид-таблет. Поведението при вратување е одредено од прошивката и хардверската имплементација на таблетот. Затоа, за проект со прилагоден Андроид-таблет, соодветната постапка за вратување треба да се потврди за вистинскиот модел и прошивка пред дистрибуција.
За овој тип Android kiosk таблетот , имајќи дефиниран метод за вратување е особено корисно во текот на интеграциското тестирање, бидејќи конфигурацијата на системското ниво може намерно да го отстрани нормалното корисничко навигирање.
Тестирање на намени за поставки и системски функции на Андроид таблет
Второто прашање на клиентот беше дали апликацијата може директно да ги стартува системските функции како што се Поставки и Вај-фај.
Андроид обезбедува стандардни акции за поставки за овие функции. На пример:
|
Функција |
Стандардна Андроид намена |
|
Главни поставки |
Settings.ACTION_SETTINGS |
|
Поставки за Вај-фај |
Settings.ACTION_WIFI_SETTINGS |
|
Бесжични поставки |
Settings.ACTION_WIRELESS_SETTINGS |
|
Поставки за Bluetooth |
Settings.ACTION_BLUETOOTH_SETTINGS |
|
Поставки за дисплеј |
Settings.ACTION_DISPLAY_SETTINGS |
|
Поставки за локација |
Settings.ACTION_LOCATION_SOURCE_SETTINGS |
|
Поставки за звук |
Settings.ACTION_SOUND_SETTINGS |
|
Поставки за сигурност |
Settings.ACTION_SECURITY_SETTINGS |
|
Поставки на апликацијата |
Поставки.АКЦИЈА_ПОСТАВКИ_НА_АПЛИКАЦИЈАТА |
|
Специфични поставки за апликација |
Поставки.АКЦИЈА_ДЕТАЉНИ_ПОСТАВКИ_ЗА_АПЛИКАЦИЈАТА |
Ова се стандардни акции за поставки на Андроид, а не интерфејси специфични за одреден Производител на Андроид таблети . Меѓутоа, постоењето на намера (Intent) не гарантира дека ќе се отвори успешно на секој уред или под секоја киоск конфигурација. Андроид препорачува проверка на намерата со resolveActivity() пред стартување.
За системски интегриран Андроид таблет, тестовите на намери затоа треба да се извршат на вистинската прошивка и верзија на Андроид што се користи за дистрибуција. Тестот треба да потврди не само дали намерата постои, туку и дали соодветната активност може да се достигне по примена на ограничувањата за сопственик на уредот, лансирач и системскиот кориснички интерфејс.
Ако работите на Android kiosk таблет или системска интеграциска проект и ви е потребна помош со восстановување на Device Owner, Settings Intents или поврзани конфигурациски проблеми, ве молиме контактирајте нè со моделот на вашиот таблет и верзијата на Android. Можеме да ги разгледаме достапните технички поддршки и опции за персонализација.
Исто така важи и за други системски функции. Стандардниот Android API може да постои, додека вистинското однесување на персонализираниот таблет зависи од верзијата на Android, конфигурацијата на фермверот и политиките за управување со уредот.
Што е со барањата за будење?
Прашањето на клиентот за „барања за будење“ малку се разликува од стартувањето на страница за поставки.
Intent.ACTION_SCREEN_ON претставува системско известување што укажува дека екранот станал интерактивен. Тоа е заштитено системско известување, па апликацијата не треба да го третира како обичен Intent кој едноставно може да го испрати за да го буди таблетот.
Ако барањето е да будете екранот, да го задржите екранот буден или да го контролирате однесувањето при вклучување на екранот , соодветниот механизам зависи од точните барања за примена. Андроид нуди апликациски интерфејси за управување со енергија и прозорци/активности за овие сценарија, вклучувајќи PowerManager и функционалност за заклучување на будност каде што е соодветно.
Ова разлика е важна при развивање на апликации за Android kiosk таблетот . „Покренување на системска функција“ и „контрола на состојбата на енергија на уредот“ се различни системски операции и треба да се обработуваат преку различни апликациски интерфејси.

Техничка поддршка за интеграција на Андроид таблети
Овој случај исто така покажува зошто деплојментот на киосци може да бара повеќе од основната конфигурација на хардвер за Андроид таблет.
Кога таблетот се интегрира во посебна апликација, POS систем, киоск, индустриски систем или друг управуван уред, конфигурацијата на софтверот може да вклучува ланчер, сопственик на уредот, системски кориснички интерфејс, дозволи за апликации, намени за поставки и однесување при воспоставување на работната состојба, симултано.
За проекти кои барaat прилагодени Андроид таблети конфигурации, овие барања треба да се проценат заедно со хардверската и Android системската конфигурација, а не како посебни проблеми во финалното тестирање.
Соодветното решение зависи од верзијата на Android, фермверот на таблетот, конфигурацијата на апликацијата и функциите кои системскиот интегратор треба да ги контролира. Техничката документација исто така може да се подготви околу достапните системски интерфејси, поддржаните намери (Intents), дозволите и ограничувањата специфични за уредот.
Ако тестираш Андроид таблет за киоск-деплојмент или системска интеграција и сретнеш слични проблеми со Device Owner, прилагодени стартни екрани (custom launchers), киоск-режим, Settings Intents, ограничувања на системскиот кориснички интерфејс (system UI restrictions) или опоравување на уредот (device recovery) , ве молиме контактирајте нè по техничка поддршка .
Можете да наведете модел на таблетот, верзија на Android, конфигурација на деплојментот и специфичната функција која се обидувате да ја имплементирате. Потоа можеме да разговараме за достапните Прилагодување на Android таблети и техничка поддршка опции за вашиот проект.