Ich bin gerade dabei zu prüfen, ob und wie eine CF .NET-Unternehmensanwendung für die Ausführung auf Android-Geräten portiert werden kann. Die Anwendung auf Windows Mobile-Telefonen wird im Kioskmodus ausgeführt, wobei die Anwendung nach dem Booten automatisch im Vollbildmodus gestartet wird und die Benutzer nicht versehentlich oder bereitwillig auf andere Teile des Telefons zugreifen können.
Ist es unter Android möglich, nach dem Booten nur eine Anwendung automatisch zu starten und zu verhindern, dass Benutzer versehentlich (oder bereitwillig) auf andere Teile des Android-Geräts zugreifen?
android
kiosk
kiosk-mode
Erik H.
quelle
quelle
Antworten:
Sie können Anwendungen beim Booten automatisch starten, indem Sie die
android.intent.action.BOOT_COMPLETED
Absicht in einem BroadcastReceiver abhören und Ihre Aktivität von dort aus starten. In der Aktivität können Sie sich als neuer Standard-Startbildschirm [1] registrieren und die Tasten verwalten.Ich denke, es gibt einige Fälle, die Sie nicht bearbeiten können, ohne das Framework zu ändern (wie Longpress auf Home, um aktuell aktive Anwendungen anzuzeigen) - ich könnte mich jedoch auch irren.
Aber für einen Prototyp könnte das ausreichen.
Viel Spaß beim Basteln!
[1]:
quelle
Sie können dies anpassen (Zugriff auf das Menü deaktivieren, Hinzufügen von Anwendungen einschränken usw.), um den Kiosk zu aktivieren. http://code.google.com/p/android-launcher-plus/
quelle
In der neuen Android L-Vorschau hat Google Task Locking angekündigt , das genau das tut. Es scheint jedoch Wurzel zu brauchen.
quelle
Nachdem ich eine Weile danach gesucht habe, habe ich eine gute Lösung gefunden. Dies funktioniert zwar nur auf gerooteten Geräten, aber ich denke, wenn es nur für diese eine App ist, sollte das Rooten kein Problem sein.
Machen Sie Ihre Anwendung zum Launcher, indem Sie hinzufügen
zu Ihrem Intent-Filter
Stellen Sie sicher, dass Ihre App die Symbolleiste reduziert, damit Sie die Benachrichtigungsleiste nicht erreichen können. Siehe So deaktivieren Sie die Statusleiste / Benachrichtigungsleiste unter Android programmgesteuert. oder http://blog.vogella.com/2011/02/28/android-hidding-the-status-and-title-bar/
Um zu verhindern, dass andere Programme versehentlich geöffnet werden, überprüfen Sie mithilfe eines Eingabehilfedienstes, ob der Fensterstatus geändert wurde, vergleichen Sie das Paket mit einer weißen oder schwarzen Liste und verwenden Sie ActivityManager.killBackgroundProcesses, um das Programm zu beenden, falls es nicht ausgeführt werden sollte.
Weitere Informationen finden Sie unter http://thebitplague.wordpress.com/2013/04/05/kiosk-mode-on-the-nexus-7/
quelle
Starten Sie Ihre App beim Booten
Der beste Weg, dies zu erreichen, besteht darin, Ihre App als Starter festzulegen
Sperren Sie Ihre App
Am zuverlässigsten ist es, ein Gerät mit Lollipop oder höher zu verwenden und zu verwenden
Zuerst müssen Sie Ihre App als Gerätebesitzer festlegen. Hinweis: Ihr Gerät muss nicht bereitgestellt sein: Wenn Sie es registriert haben, sollten Sie einen Werksreset durchführen und die Kontoregistrierung überspringen.
Um Ihre App registrieren zu können, müssen Sie zuerst eine DeviceAdminReceiver-Komponente einrichten:
Sobald Sie ein nicht bereitgestelltes Gerät haben, können Sie den folgenden Befehl von adb aus starten ( kein Root erforderlich ).
Um zu vermeiden, dass Android den Benutzer auffordert, Ihre App zu pinnen, müssen Sie setLockTaskPackages aufrufen
endlich!
quelle
Google hat kürzlich die Android-Verwaltungs-API veröffentlicht, mit der der Kiosk-Modus für alle Android-Geräte mit Android 5.1 oder höher einfach eingerichtet und verschiedene andere Richtlinien festgelegt werden können.
quelle
Einrichtungsgeräte einrichten Seite des Android-Entwicklers hat diese Dinge beschrieben, mit denen Sie leicht mehr Dinge von dort erfahren können.
Jetzt ist es einfach, Android 6.0 Marshmallow- und spätere Geräte als firmeneigene Einweggeräte (COSU) zu konfigurieren .
quelle
In diesem Forumsbeitrag wurde eine andere mögliche Technik gefunden . Diesen Beitrag zitieren:
http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/10839-android-kiosk-mode-tutorial.html
Es scheint auch eine Beispiel-Postleitzahl für den Kioskmodus zu geben , die ebenfalls heruntergeladen werden kann.
quelle
Xposed Framework kann dies tun. Es braucht root und es besteht die Möglichkeit, dass es nicht auf allen Plattformen funktioniert. Suchen Sie in der Klasse android.app.StatusBarManager nach der Methode disable () .
Hier im Android-Quellcode
Hier erfahren Sie, wie Sie Ihr eigenes Modul schreiben: Xposed-Entwicklungs-Tutorial
Es ist viel einfacher als Sie auf den ersten Blick denken. Viel Glück!
quelle
Zusammen mit der Einrichtung Ihrer Anwendung mit einem BOOT-Empfänger und dieser Antwort zur Verhinderung der Erweiterung der Statusleiste funktioniert diese Lösung ab Version 4.4 als vollständige Kiosk-App:
Platzieren Sie in Ihrem onCreate ():
Dadurch werden die Zurück-Schaltfläche, Apps und die Home-Schaltfläche vollständig ausgeblendet.
quelle