2016-06-23 5 views
0

Ich versuche, eine Kiosk-App mit Android 5 Bildschirm Pinning-Funktion zu bauen. Es scheint, dass alles, was ich in der App tun musste, war, startLockTask() zu rufen, aber das erlaubt dem Benutzer immer noch, die App zu verlassen, indem er auf die Schaltflächen Zurück und Zurück drückt.Bildschirm Pinning als Geräteinhaber funktioniert nicht

Um die App so zu pinnen, dass der Benutzer sie nicht verlassen kann, muss die App Eigentümer eines Geräts sein. Basierend auf sites such as this one, braucht man

adb shell dpm set-device-owner my.package.name/.MyAdminReceiver 

laufen, um das Gerät Eigentümer zu setzen. Aber das Kommando mit gescheiterten

java.lang.IllegalStateException: Trying to set device owner but device is already provisioned. 

, die ich gehört habe, wird durch die Datei verursacht /data/system/device_owner.xml bereits auf dem Gerät vorhanden ist.

Da das Gerät gerade frisch von der Fabrik zurückgesetzt wurde, vermute ich, dass es mit einer bereits vom Hersteller bereitgestellten App gekommen war, also habe ich das Gerät gerootet. Ich würde es lieber ohne Rooting machen (da es ungefähr 70 Geräte geben wird, auf denen ich das Verfahren ausführen muss), aber für Forschungszwecke kann es nicht geholfen werden.

Nachdem ich das Gerät verwurzelt habe, habe ich versucht, die device_owner.xml Datei zu finden, aber es war nicht da. Ich habe versucht, eine basierend auf this answer trotzdem zu erstellen, aber die App zeigt immer noch die Pinning-Nachricht und die letzten + Zurück-Tasten noch deaktiviert die App.

Warum kann ich den Gerätebesitzer nicht einstellen? Gibt es einen Weg dahin?

+0

Besitzt das Gerät ein Google-Konto? Sie müssen es entfernen, bevor Sie den Gerätebesitzer festlegen können. – basilisk

+0

@basilisk Es hatte kein Google-Konto, als ich die DPM-Methode ausprobierte. Es wurde frisch zurückgesetzt. Buchstäblich die zweite Sache, die ich getan habe, nachdem das Gerät nach dem Zurücksetzen gestartet wurde (zuerst war die Installation der APK) – larvyde

Antwort

1

Während es stimmt, dass ich dpm provisioning auf einem neu zurückgesetzten Gerät probierte, hat mich der Kommentar von @basilisk auf die Antwort hingewiesen. Das Gerät wird mit Bloatware geladen, die Standard-Accounts zur Verfügung stellt. Durch das Deaktivieren dieser Apps konnte ich das Gerät schließlich mit DPM bereitstellen.

+0

Wie entfernen Sie eigentlich alle Konten. –

+0

Ich habe alle Apps deaktiviert, die diese Konten bereitstellen – larvyde

+0

wie Google Mail-App, –

Verwandte Themen