2016-06-23 1 views
0

J'essaie de créer une application de kiosque en utilisant la fonction d'épinglage de l'écran d'android 5. Il semble que tout ce que j'ai besoin de faire dans l'application était d'appeler startLockTask(), mais cela permet toujours à l'utilisateur de quitter l'application en appuyant sur les boutons récents et retour.L'épinglage de l'écran en tant que propriétaire de l'appareil ne fonctionne pas

Pour épingler l'application d'une manière qui ne permet pas à l'utilisateur de quitter, l'application doit être propriétaire de l'appareil. Sur la base de sites such as this one, il faut exécuter

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

afin de définir le propriétaire de l'appareil. Toutefois, cette commande a échoué avec

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

qui, j'ai entendu, est causée par le fichier /data/system/device_owner.xml étant déjà présent sur l'appareil.

Étant donné que l'appareil venait juste d'être réinitialisé en usine, je suppose qu'il était déjà fourni avec une application déjà fournie par le fabricant, donc j'ai enraciné l'appareil. Je préférerais le faire sans enracinement (puisqu'il y aura environ 70 appareils sur lesquels je dois exécuter la procédure) mais à des fins de recherche, cela ne peut pas être aidé.

Après avoir enraciné l'appareil, j'ai essayé de trouver le fichier device_owner.xml mais il n'y était pas. J'ai essayé d'en créer un de toute façon sur la base de this answer, mais l'application montre toujours le message d'épinglage et les boutons récents + arrière encore épinglé l'application. Pourquoi ne puis-je pas définir le propriétaire de l'appareil? Y a-t-il un moyen de contourner cela?

+0

L'appareil dispose-t-il d'un compte google? Vous devez le supprimer avant de pouvoir définir le propriétaire de l'appareil. – basilisk

+0

@basilisk Il n'y avait pas de compte google quand j'ai essayé la méthode dpm. Il a été fraîchement réinitialisé. Littéralement, la deuxième chose que j'ai fait après le démarrage de l'appareil après avoir été réinitialisé (le premier était d'installer l'APK) – larvyde

Répondre

1

Même s'il est vrai que j'ai essayé le provisionnement dpm sur un appareil nouvellement réinitialisé, le commentaire de @ basilisk m'a laissé entrevoir la réponse. L'appareil est livré avec un bloatware qui fournit des comptes par défaut. La désactivation de ces applications m'a finalement permis de provisionner l'appareil avec dpm.

+0

comment supprimez-vous réellement tous les comptes. –

+0

J'ai désactivé toutes les applications qui fournissent ces comptes – larvyde

+0

comme l'application gmail, –