Jestem w trakcie oceniania, czy i jak można przenieść aplikację korporacyjną CF .NET do działania na urządzeniach z systemem Android. Aplikacje na telefonach z systemem Windows Mobile są uruchamiane w trybie kiosku, w którym aplikacja uruchamia się automatycznie w trybie pełnoekranowym po uruchomieniu, a użytkownicy nie mogą przypadkowo lub chętnie uzyskać dostępu do innych części telefonu.
Czy na Androidzie możliwe jest automatyczne uruchamianie tylko jednej aplikacji po uruchomieniu i zapobieganie przypadkowemu (lub dobrowolnemu) dostępowi użytkowników do innych części urządzenia z Androidem?
android
kiosk
kiosk-mode
Erik H.
źródło
źródło
Odpowiedzi:
Możesz automatycznie uruchamiać aplikacje podczas rozruchu, słuchając
android.intent.action.BOOT_COMPLETED
intencji w BroadcastReceiver i rozpoczynając swoją aktywność z tego miejsca. W Aktywności możesz zarejestrować się jako nowy domyślny ekran główny [1] i obsługiwać klawisze.Myślę, że jest kilka przypadków, z którymi nie można sobie poradzić bez modyfikacji frameworka (np. Longpress na stronie głównej, aby pokazać aktualnie aktywne aplikacje) - chociaż też mogę się mylić.
Ale w przypadku prototypu to mogłoby wystarczyć.
Miłego majsterkowania!
[1]:
źródło
Możesz to dostosować (wyłączyć dostęp do menu, ograniczyć dodawanie aplikacji itp.), Aby włączyć kiosk. http://code.google.com/p/android-launcher-plus/
źródło
W nowym podglądzie Androida L Google ogłosił blokowanie zadań , które dokładnie to robi. Wydaje się jednak, że potrzebuje roota.
źródło
Po dłuższych poszukiwaniach znalazłem dobre rozwiązanie. Działa to jednak tylko na zrootowanych urządzeniach, ale myślę, że jeśli jest to tylko dla tej jednej aplikacji, to zrootowanie nie powinno stanowić problemu.
Ustaw aplikację jako program uruchamiający, dodając
do twojego filtra intencji
Upewnij się, że aplikacja zwija pasek narzędzi, aby nie można było dotrzeć do paska powiadomień, zobacz Jak programowo wyłączyć pasek stanu / pasek powiadomień w systemie Android? lub http://blog.vogella.com/2011/02/28/android-hidding-the-status-and-title-bar/
Następnie, aby zapobiec przypadkowemu otwarciu innych programów, skorzystaj z usługi ułatwień dostępu w celu sprawdzenia zmiany stanu okna, porównaj pakiet z białą lub czarną listą i użyj metody ActivityManager.killBackgroundProcesses, aby zabić, jeśli nie powinien działać.
Sprawdź również http://thebitplague.wordpress.com/2013/04/05/kiosk-mode-on-the-nexus-7/, aby znaleźć inny sposób
źródło
Uruchamianie aplikacji podczas rozruchu
NAJLEPSZYM sposobem na osiągnięcie tego jest ustawienie aplikacji jako programu uruchamiającego
Blokowanie aplikacji
najbardziej niezawodnym sposobem jest użycie urządzenia z Lollipopem lub nowszym i korzystanie z niego
najpierw musisz ustawić swoją aplikację jako właściciela urządzenia. Uwaga: Twoje urządzenie musi być wyrejestrowane: jeśli je zarejestrowałeś, powinieneś przywrócić ustawienia fabryczne i pominąć rejestrację konta.
aby móc zarejestrować swoją aplikację, musisz najpierw skonfigurować komponent DeviceAdminReceiver:
gdy masz nieobsługiwane urządzenie, możesz uruchomić następujące polecenie z adb ( nie jest wymagany root )
aby system Android nie pytał użytkownika o uprawnienia do przypięcia aplikacji, należy wywołać metodę setLockTaskPackages
Wreszcie!
źródło
Niedawno firma Google wydała Android Management API, który pozwala łatwo skonfigurować tryb kiosku dla dowolnego urządzenia z Androidem 5.1 lub nowszym, a także ustawić różne inne zasady.
źródło
Skonfiguruj urządzenia jednozadaniowe Strona dewelopera Androida opisała te rzeczy, dzięki którym możesz łatwo dowiedzieć się więcej.
Teraz można łatwo skonfigurować urządzenia z Androidem 6.0 Marshmallow lub nowszym jako urządzenia firmowe do jednorazowego użytku (COSU).
źródło
Znalazłem inną możliwą technikę w tym poście na forum . Cytując ten post:
http://www.basic4ppc.com/forum/basic4android-getting-started-tutorials/10839-android-kiosk-mode-tutorial.html
Wygląda na to, że jest też dostępny do pobrania przykładowy plik ZIP z kodem w trybie kiosku .
źródło
Xposed Framework może to zrobić. Potrzebuje roota i istnieje możliwość, że nie będzie działać na wszystkich platformach. Poszukaj metody disable () w klasie android.app.StatusBarManager .
Tutaj w kodzie źródłowym Androida
Zobacz, jak napisać własny moduł: samouczek dotyczący programowania Xposed
To znacznie łatwiejsze niż myślisz na pierwszy rzut oka. Powodzenia!
źródło
Wraz z konfiguracją aplikacji z odbiornikiem BOOT i odpowiedzią dotyczącą zapobiegania rozszerzaniu się paska stanu, to rozwiązanie działa w wersji 4.4 i nowszych jako kompletna aplikacja kiosku:
Umieść w swoim onCreate ():
Spowoduje to całkowite ukrycie przycisku Wstecz, aplikacji i przycisku strony głównej.
źródło