2017-02-13 6 views
5

Ich habe ein Kundenprojekt, wo ich Single-Task-Android-Gerät machen muss. Der Kunde kann sich nicht der Anwendung entziehen, die meine Firma entwickelt hat. Außerdem kann der Kunde keine andere Anwendung starten und unsere Anwendung wird gestartet, wenn das Gerät gestartet wird. Insgesamt kann der Kunde mit dem Gerät unsere Applikation ausführen.Android: Wie man Gerät nur eine App ausführen lassen?

Gibt es eine andere Möglichkeit, dies zu tun, als das Gerät zu rooten, alle Systemschaltflächen zu deaktivieren und unsere Anwendung zum Launcher zu machen. Ich habe so etwas wie 400 Geräte für diesen Zweck, so root all diese würde viel Zeit kosten.

Ich habe auch gelesen Tutorial über COSU Geräte von Google, aber fand es sehr confucing https://developer.android.com/work/cosu.html#testing-plan

Androids besitzen Bildschirm Pinning nicht gut genug ist, weil Kunden die App entweichen kann. Einige mögen vorschlagen, eine Kioskanwendung wie SureLock zu verwenden, aber das Ziel meines Unternehmens ist es, eine klare Lösung dafür zu finden, ohne Apps von Drittanbietern zu verwenden. Es ist nicht unser Ziel, unsere App über eine Kioskanwendung zu betreiben.

Ich fand einige Beiträge auf dem Stack Overflow mit ähnlicher Frage, aber nicht die Antwort, die ich suche.

Wenn jemand ein paar Tipps für diese Frage hat, wäre ich sehr dankbar.

+0

Sie wollen Kiosk App entwickeln? hmm interessant –

Antwort

0

Machen Sie Ihre Anwendung als Launcher-Anwendung, indem Sie in der Manifestdatei definieren.

Danach gehen Sie zur Einstellung Ihres mobilen Geräts und ändern Standard-Launcher-Anwendung zu Ihrer Anwendung.

1

Ich ging auf das gleiche Problem vor. Ich verbrachte mindestens 3 Tage damit, zu forschen. Ich habe versucht, viele Lösungen zu finden, aber ich habe null gefunden.

How I solve is 

    1. Up To JellyBean 
    - Use System Alert Dialog (And make it transparent and small size like 2 * 2 And display in some corner(User can't see it)). User can't press home button If there is system Alert dialog 

    2. After JellyBean, This method doesn't work. The user can press the home button even though there is System Alert Dialog. 
    so what I did is, start the service on stop and start the same activity again and again(within sec). So user can't see any difference.Don't forget to make activity as single task so that even though you start same activity from service, again and again, new activity will not create (So Ugly way) 

    - You can simple make screen full screen. make sure in kiosk mode try to check if the screen is in full-screen mode. if not make it full-screen mode(its not hard to do) 

    - other way is to make launcher app but when ever you pressed home button it always asked to choose launcher app. if user mistakenly choose default/ other launcher app, this solution doesnt work 

    Good luck 
+0

Lösung 1 ist kreativ, aber ich würde nicht empfehlen, den System Alert Dialog zu missbrauchen, um den Kiosk Modus zu erreichen. Ich habe die zweite empfohlene Lösung bereits gesehen, aber es ist keine großartige Lösung. Ihre App oder Ihr Dienst kann jederzeit von Android abstürzen oder getötet werden, sodass der Benutzer mit dem Gerät tun kann, was er will. Wenn Sie nach einer guten Lösung für den Kiosk-Modus suchen, finden Sie auf meiner Antwort einige Alternativen: http://stackoverflow.com/a/43644803/2888763 –

2

Einzweckgeräte, die auf Android basieren, können schwierig zu implementieren sein. Es gibt ein paar verschiedene Optionen, aber jede hat Kompromisse.

Wie Sie bereits erwähnt haben, erhalten Rooting-Geräte funktionell, was Sie wollen - jedoch wird es mit hunderten von Geräten root, schwierig zu warten, und Sie werden (potenziell) Sicherheitsprobleme auf Ihre Geräte und App einführen.

Eine andere Option ist Googles Lock Task Mode für COSU-Geräte [1]. Der Link dort hat eine schöne Grafik mit den Merkmalen des Lock-Task-Modus zeigt:

  • 1 App auf den Home-Bildschirm gepinnt
  • nur apps weiße Liste der DPC (Device Policy Controller) gesperrt werden kann
  • Start und Neue Schaltflächen
  • Ausgang versteckt von stopLockTask()

Aufruf Es gibt einige Nachteile zur Verwendung von Google-Lösung. Zunächst empfiehlt Google, eine vollständig separate DPC-App zu erstellen (und damit zu warten), die als Gerätebesitzer ausgeführt wird und Richtlinien [2] festlegt. Sie sind außerdem von Google Play abhängig, um Anwendungsaktualisierungen zu verwalten, und müssen mit jedem Gerät Play-Konten verknüpft sein, die "zur Identifizierung eines einzelnen Geräts, das nicht an einen einzelnen Nutzer gebunden ist, für vereinfachte App-Verteilungsregeln pro Gerät benötigen in COSU-ähnlichen Szenarien "[3].Um Ihre DPC-App automatisch auf Geräten zu erhalten, muss Ihr "DPC bei Google Play öffentlich verfügbar sein, und der Endbenutzer kann den DPC über den Geräte-Setup-Assistenten durch Eingabe der DPC-spezifischen ID installieren." [3] Das müssen Sie auch tun Laden Sie die Nutzeranwendung auf Google Play hoch [4], was für einige, die ihre Apps nicht auf Play verwenden möchten, ein Problem darstellen könnte. Diese Route bietet Ihnen Funktionen, die Sie benötigen, kann aber kompliziert sein und bindet Sie und Ihre Kunden sehr eng an die Google/Play-Dienste und deren Workflow.

Sie können auch Enterprise Mobile Deployment-Plattformen wie Mason [5] betrachten. In Ihrem Fall können Sie in wenigen Minuten ein benutzerdefiniertes Android-Betriebssystem erstellen, in dem Ihre App im Kioskmodus gesperrt ist (+ andere Funktionen wie Kamera/SMS deaktivieren, Apps entfernen und Einstellungen ausblenden usw.) und dann auf allen Ihren Geräten bereitstellen entfernt. Mason unterstützt auch von Ihnen kontrollierte Betriebssystem- und App-Updates, wenn sich Ihre Anforderungen ändern.

Wenn dies nützlich klingt, fühlen sich frei, mir zu erreichen: trevor @ bymason.com

HAFTUNGSAUSSCHLUSS: Ich arbeite für Mason

Verwandte Themen