Android-kioskinstelling: wat te doen als de apparaateigenaar u buiten de instellingen houdt
A10,1-inch Android-tablet was geconfigureerd voor kioskgebruik met ADB, een aangepaste startprogramma en Apparaateigenaar. Na opnieuw opstarten werd de toepassing zoals verwacht gestart, maar het apparaat kon niet langer toegang krijgen tot de normale Android-instellingeninterface.
Dit veroorzaakte een veelvoorkomende uitdaging bij kioskimplementatie: zodra systeemnavigatie en apparaatbeheerbedieningen zijn beperkt, hoe kan de tablet dan worden hersteld voor verdere tests? En indien de toepassing Wi-Fi of andere systeemfuncties moet openen, welke Android-intents kunnen dan nog steeds worden gebruikt?
De klant gebruikte eerst ADB-opdrachten om het gedrag van de systeemgebruikersinterface aan te passen:
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
De toepassing werd vervolgens ingesteld als standaardthuispagina, gevolgd door het configureren van de toepassing als Apparaateigenaar de vereiste apparaatbeheerfuncties mogelijk te maken.
Na het opnieuw opstarten Android-kiosktablet startte automatisch de toepassing zoals verwacht. De klant kon echter niet langer van het hoofdscherm van de toepassing weggaan om toegang te krijgen tot de Android-instellingen of andere systeemfuncties. Ook de in de toepassing ingebouwde knoppen voor Instellingen en Wi-Fi openden niet langer de bijbehorende systeempagina’s.
De eerste vraag was niet alleen hoe de toepassing te verlaten. De klant had een betrouwbare manier nodig om de Android tablet opnieuw te herstellen voor verdere tests en wilde ook begrijpen welke systeemintents door hun toepassing gebruikt konden worden.
Waarom de Android-tablet moeilijk toegankelijk werd
Het probleem ontstond doordat meerdere lagen apparaatbesturing tegelijkertijd werden toegepast.
De aangepaste startprogramma bepaalde welke toepassing als beginscherm verscheen, terwijl Device Owner de toepassing veel uitgebreidere controle gaf over het apparaatbeleid. De officiële Android-documentatie voor speciale apparaten ondersteunt dit type configuratie voor kiosk- en beheerde-apparaatimplementaties, inclusief het beheren van de standaardstartschermpagina en het beperken van toegang tot systeemfuncties.
De ADB-opdrachten voegden een extra laag toe door het gedrag van de systeemgebruikersinterface te wijzigen. Deze specifieke instellingen zijn afhankelijk van het apparaat of de firmware, en niet gebaseerd op universele Android-API’s, dus hun exacte effect hangt af van hoe de tabletfirmware ze implementeert.
Dit betekent dat een Android-tablet die wordt gebruikt als kioskapparaat moeilijk te herstellen kan worden wanneer het startprogramma, de Device-Owner-configuratie, de beperkingen van de systeemgebruikersinterface en de toepassingsnavigatie allemaal tegelijk worden gewijzigd.
Het feit dat de Instellingen- of Wi-Fi-knop van de applicatie niet meer werkt, betekent niet noodzakelijkerwijs dat de Intent zelf onjuist is. De doel-Instellingen-activiteit kan onbeschikbaar, beperkt of op een andere manier ontoegankelijk zijn onder de huidige apparaatconfiguratie. Android raadt ook aan te controleren of een Intent kan worden opgelost voordat u probeert deze te starten.

Herstelpaden voor een vergrendeld Android-kiosktablet
Als de applicatie al is geconfigureerd als apparaateigenaar, moet softwarematig herstel eerst worden overwogen.
Androids DevicePolicyManager biedt apparaatbeheerfuncties die kunnen worden gebruikt door een apparaateigenaar. Afhankelijk van de Android-versie en de configuratie van de applicatie kan een apparaateigenaarapplicatie het geschikte apparaatwismechanisme gebruiken om de tablet terug te brengen naar een schone staat voor testdoeleinden. wipeData() is de gevestigde API voor het wissen van gebruiksgegevens, terwijl nieuwere Android-versies extra functionaliteit voor het wissen van apparaten bieden.
De verouderde clearDeviceOwnerApp() deze methode mag niet worden beschouwd als een algemene productieherstelmethode. Android documenteert deze als een op testen gerichte API en beveelt een fabrieksreset aan als de normale manier om een Device Owner-relatie te verwijderen.
ADB biedt ook opdrachten voor het beheren van apparaatbeleid, maar deze zijn beperkt. Bijvoorbeeld: adb shell dpm remove-active-admin is geen universele methode om een Device Owner te verwijderen; de ADB-documentatie van Android specificeert vereisten zoals de declaratie testOnly van de applicatie.
Als softwarematig herstel niet beschikbaar is omdat de applicatie de vereiste bewerking niet kan uitvoeren, dan blijft als alternatief alleen een hardwarefabrieksreset of de Android Recovery-procedure .
De exacte knopcombinatie mag niet worden overgenomen van een ander Android-tabletmodel. Het gedrag van de recovery wordt bepaald door de firmware en hardware-implementatie van het tablet. Voor een aangepast Android-tabletproject moet de juiste recovery-procedure daarom worden bevestigd voor het specifieke model en de bijbehorende firmware vóór implementatie.
Voor dit type Android-kiosktablet , is het vooral nuttig om een gedefinieerde herstelmethode te hebben tijdens integratietests, omdat systeemniveauconfiguratie opzettelijk de normale gebruikersnavigatie kan verwijderen.
Instellingenintenten en systeemfuncties testen op een Android-tablet
De tweede vraag van de klant was of de toepassing systeemfuncties zoals Instellingen en Wi-Fi rechtstreeks kon starten.
Android biedt standaardinstellingenacties voor deze functies. Bijvoorbeeld:
|
Functie |
Standaard Android Intent |
|
Hoofdinstellingen |
Settings.ACTION_SETTINGS |
|
Wi-Fi-instellingen |
Settings.ACTION_WIFI_SETTINGS |
|
Draadloze instellingen |
Settings.ACTION_WIRELESS_SETTINGS |
|
Bluetooth-instellingen |
Settings.ACTION_BLUETOOTH_SETTINGS |
|
Weergave-instellingen |
Settings.ACTION_DISPLAY_SETTINGS |
|
Locatie-instellingen |
Settings.ACTION_LOCATION_SOURCE_SETTINGS |
|
Geluidsinstellingen |
Settings.ACTION_SOUND_SETTINGS |
|
Beveiligingsinstellingen |
Settings.ACTION_SECURITY_SETTINGS |
|
Applicatie-instellingen |
Settings.ACTION_APPLICATION_SETTINGS |
|
Specifieke app-instellingen |
Settings.ACTION_APPLICATION_DETAILS_SETTINGS |
Dit zijn standaardacties voor Android-instellingen, geen interfaces die specifiek zijn voor een bepaalde Android-tabletfabrikant . De aanwezigheid van een Intent garandeert echter niet dat deze op elk apparaat of onder elke kioskconfiguratie succesvol wordt geopend. Android raadt aan om de Intent te controleren met behulp van resolveActivity() voordat deze wordt gestart.
Voor een systeemgeïntegreerde Android-tablet dient Intent-testen daarom te geschieden op de werkelijke firmware en Android-versie die wordt gebruikt voor implementatie. De test moet niet alleen verifiëren of de Intent bestaat, maar ook of de bijbehorende Activity toegankelijk is nadat Device Owner-, launcher- en systeem-UI-beperkingen zijn toegepast.
Als u werkt aan een Android-kiosktablet of een systeemintegratieproject en hulp nodig heeft bij Device Owner-herstel, Settings-intents of gerelateerde configuratieproblemen, neem dan contact met ons op met uw tabletmodel en Android-versie. We kunnen de beschikbare technische ondersteuning en aanpassingsmogelijkheden bespreken.
Hetzelfde principe geldt voor andere systeemfuncties. Er kan een standaard Android-API bestaan, terwijl het daadwerkelijke gedrag van een aangepaste tablet afhangt van de Android-versie, de firmwareconfiguratie en het apparaatbeheerbeleid.
Wat is er met wekverzoeken?
De vraag van de klant over ‘wekverzoeken’ verschilt licht van het openen van een instellingenpagina.
Intent.ACTION_SCREEN_ON vertegenwoordigt een systeembroadcast die aangeeft dat het scherm interactief is geworden. Het is een beveiligde systeembroadcast, dus een toepassing mag deze niet behandelen als een gewone intent die eenvoudig kan worden verstuurd om de tablet te wekken.
Als de vereiste is om het scherm te wekken, het scherm wakker te houden of het scherm-aan-gedrag te beheren , het geschikte mechanisme hangt af van de exacte toepassingsvereiste. Android biedt stroombeheer- en venster/activiteit-API's voor deze scenario's, inclusief PowerManager en wake-lock-functionaliteit waar dat gepast is.
Dit onderscheid is belangrijk bij het ontwikkelen van toepassingen voor een Android-kiosktablet . „Een systeemfunctie starten” en „de stroomstatus van het apparaat besturen” zijn verschillende systeembewerkingen en moeten via verschillende API's worden afgehandeld.

Technische ondersteuning voor Android-tabletintegratie
Dit geval laat ook zien waarom kioskimplementatie meer kan vereisen dan alleen de basisconfiguratie van een Android-tablet.
Wanneer een tablet wordt geïntegreerd in een specifieke toepassing, een POS-systeem, een kiosk, een industrieel systeem of een ander beheerd apparaat, kan de softwareconfiguratie tegelijkertijd betrekking hebben op de launcher, Device Owner, systeemgebruikersinterface, toepassingsmachtigingen, instellingenintenten en herstelgedrag.
Voor projecten die aangepaste Android-tablet configuraties: deze vereisten moeten worden beoordeeld in combinatie met de hardware- en Android-systeemconfiguratie, in plaats van als afzonderlijke kwesties tijdens de definitieve testfase.
De geschikte oplossing hangt af van de Android-versie, de tabletfirmware, de applicatieconfiguratie en de functies die de systeemintegrator moet kunnen besturen. Technische documentatie kan ook worden opgesteld rond de beschikbare systeeminterfaces, ondersteunde Intents, machtigingen en apparaatspecifieke beperkingen.
Als u een Android tablet test voor kioskimplementatie of systeemintegratie en vergelijkbare problemen ondervindt met Device Owner, aangepaste startprogramma’s, kioskmodus, Settings Intents, beperkingen van de systeemgebruikersinterface of apparaatherstel , Alsjeblieft neem contact met ons op voor technische ondersteuning .
U kunt uw tabletmodel, Android-versie, implementatieconfiguratie en de specifieke functie die u wilt implementeren, verstrekken. Vervolgens kunnen we de beschikbare Aangepaste Android-tabletfunctionaliteit en technische ondersteuning opties voor uw project.