9
votes

Android - Suppression de bouton d'accueil et navigation

Je suis en train de supprimer le bouton Home et le bouton multithread. L'idée est de supprimer complètement de l'application en cours d'exécution, mieux si nous pouvons l'enlever complètement de toutes les applications sur la tablette, nous travaillons avec. L'utilisation en mode plein écran est pas quelque chose que nous voulons, car l'utilisateur ne doit pas être en mesure de quitter le mode plein écran, même s'il le veut (il est une application commerciale personnalisée, il est le comportement souhaité pour plusieurs raisons).

 Nexus 10 sans les boutons de la maison et de navigation

Ceci est le résultat sur un Nexus 10. Nous avons accompli qu'en prenant les sources de SystemUI et de les modifier avant de compiler le CyanogenMod.

Malheureusement, nous devons répliquer que dans un Asus ZenPad 10, qui n'a pas CyanogenMod disponible. Nous avons une version qui nous permet de créer des applications du système, mais le changement toutes les applications dans une application du système n'est pas quelque chose que nous voulons.

Nous avons trouvé dans ce lien: http://developer.oesf.biz/em/developer/reference/eggplant/constant-values.html#android.view.View.STATUS_BAR_DISABLE_HOME

Qu'il y ait des drapeaux pour désactiver le bouton d'accueil et le bouton de navigation, mais ils ne sont utilisables qu'avec les applications du système.

Nous avons essayé d'obtenir le SystemUI.apk déjà compilé dans la tablette, décompiler et changer. Le problème est que nous avons ou les fichiers inutiles ou Smali ont seulement res / et les fichiers AndroidManifest.xml (Asus a changé le SystemUI.apk en deux APK de son propre).

Alors ... nous sommes un peu désespéré ici ahah. Vous cherchez des idées / astuces pour essayer de supprimer que les boutons. Mieux sans recompiler ou faire quelque chose d'étrange.


1 commentaires

Vous pouvez essayer un autre hack, si vous avez juste besoin d'une application en cours d'exécution fulscreen. Vous pouvez exécuter le service en arrière-plan, qui périodiquement vérifier si votre application est active en plein écran, et lorsque vous essayez d'utilisateur de laisser votre application, puis le service commence immédiatement à votre application à nouveau. Ce n'est pas exactement ce que vous voulez, mais il peut peut-être aider à


6 Réponses :


0
votes

Vous allez demander la permission à l'utilisateur. Dans cette voiture, c'est toi-même. Faites attention depuis que vous devrez mettre en œuvre un moyen de sortir de l'application.

Référence: Désactiver la maison < / p>

ou vous pouvez simplement acheter un cas pour le coller, de sorte que les boutons ne seront pas visibles ...


7 commentaires

malheureusement, cette solution n'est pas permanente .. est-il? Nous devons éviter l'utilisateur d'activer l'arrière de la barre de navigation à nouveau


Comment allez-vous lui permettre de nouveau, si elle est permanente?


Quelque chose comme ça: play.google.com/store/ apps / ... ?


vous ne serez pas. L'idée est de vendre la tablette au client sans la maison et les boutons de navigation, pour l'empêcher de sortir de la seule application sur elle. Nous avons essayé de mettre le « retrait du bouton » dans le lanceur. En fait, il a travaillé dans l'écran d'accueil, mais quand on commence l'application, le bouton apparaît à nouveau. wtf? ahah :) Merci pour l'aide si!


Vous devriez trouver un vendeur d'appareils et demander cela. Vous ne devriez pas acheter des comprimés et de les vendre peaufinés. Et pourquoi voudriez-vous faire cela?


Déjà fait, nous demandons actuellement d'avoir une version personnalisée sans la barre de navigation et le bouton d'accueil, mais si nous trouvons une solution plus facile, nous allons l'utiliser


Laissez-nous Continuez cette discussion en chat .



3
votes

7 commentaires

je vous remercie, mais je l'ai essayé toutes les solutions que vous proposez, mais rien ne convient le cas. Le premier est ok, mais nous avons besoin d'une solution permanente, pas quelque chose que l'utilisateur peut éviter. En fait, le lanceur déjà supprimé les boutons, mais l'activité de nos puts app les ravoir .. nous pouvons peut-être essayer d'éviter que l'activité remet à zéro les boutons (aucune idée de la façon de le faire bien)


Y compris le mode d'immersion vérifier. developer.android.com/training/system-ui/immersive.html


Oui, l'utilisation peut échapper à ce que


Est-ce appareil Android paramètre propriétaire aussi échouer


Je n'ai pas compris ... :(


Cochez cette case, je pense que github.com/googlesamples/android-DeviceOwner cela devrait être un point de départ


semble que cela ne correspond pas à mon problème



0
votes

Utilisez le mode Tremper, utilisez ce code dans onResume () de sorte que chaque fois que vous revenez à votre activité et son RAN ils sont cachés

View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                          | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                          | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                          | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                          | View.SYSTEM_UI_FLAG_FULLSCREEN
                          | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);


1 commentaires

Ouais, mais ce n'est pas corrigé. L'utilisateur peut échapper à ce



1
votes

Android pour les API de travail et référence ce apis vous .En utilisant pouvez obtenir le contrôle total de l'appareil et désactiver tout ce que vous want.The appareil peut être utilisé que pour seule application.

appartenant à la Société, à usage unique (COSU) est un sous-ensemble du scénario corp-responsable des périphériques partagés ou à usage spécial. Contrairement aux appareils corp-responsables qui sont associés aux employés, dispositifs COSU sont associés à des fonctions commerciales particulières. Par exemple, un dispositif de COSU peut être utilisé comme un kiosque.

Vous pouvez également essayer d'intégrer la solution fournie par OEMS / fournisseurs de MDM / MDM partenaires comme Samsung, HTC, Airwatch etc. MDM personnalisé (gestion des périphériques mobiles) Ce travail sur les périphériques avant lollipop trop et fournir davantage d'API pour commander le dispositif de solution fournie par les applications par défaut.

Je sais que la solution Samsung MDM / Knox est bon et il a des API pour contrôler chaque partie du device.Refer- http://www.samsung.com/levant/business/solutions-services/mobile-solutions/security/mobile-device-management . Ils ont un mode kiosque qui est similaire à COSU.


4 commentaires

Merci pour le conseil. On dirait que c'est la meilleure réponse, mais je dois vérifier si cela fonctionne vraiment sur Lollipop. J'y travaille :)


Je dois attendre une réponse de Google :( Nous verrons si elles répondront à temps


@Filnik Je suppose que cela fonctionne sur lollipop aussi. Sinon, vous pouvez essayer des solutions fournies par OEMS / d'autres fournisseurs si son possible. Mise à jour la réponse aussi.


pas sûr si cela fonctionne ou non. J'ai demandé d'obtenir l'accès à Android .. Le travail toujours rien. Merci pour la réponse que



0
votes

Bien sûr, vous ne pouvez pas Supprimer strong> tout Système strong> est comme Power strong>, Volume +/- strong> , Accueil strong>, Retour strong> ou Menu strong>. Vous ne pouvez cacher ou afficher Accueil strong>, Retour strong> ou Menu strong> uniquement quand ils sont virtuels (en face de Solide strong> s ).

Pendant ce temps, cacher la barre de navigation est limitée. Il ne peut être complété sur Android 4.0 et versions ultérieures. Donc, si vous voulez faire cela, vous devez utiliser le SYSTEM_UI_FLAG_HIDE_NAVIGATION code> drapeau. Cet extrait se cache à la fois la barre de navigation et la barre d'état: p>

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);


0 commentaires

0
votes

i ont essayé la même chose pour une longue période de temps et beaucoup cherché mais comme vous le savez le bouton HOME est le seul moyen pour l'utilisateur de sortir de toute application dans toute situation. il est très risqué de bloc et Google ne lui permettra pas.

Une chose que vous pouvez faire est de définir votre application comme une application lance alors u peut recevoir KeyEvent Accueil


1 commentaires

Les réponses uniquement des liaisons sont très découragées ici car les liens peuvent devenir morts à l'avenir. Je vous suggère de modifier votre réponse avec des citations des sources que vous citez.