Désactiver le Bouton Home dans Android ICS (4.0)
Je fais une app propriétaire pour une société qui ne sera jamais communiqué à l'Android Market (Play Store, je suppose que maintenant) Ice Cream Sandwich (Android 4.0).
J'ai besoin de désactiver la Maison afin que les utilisateurs ne peuvent pas malicieusement désinstaller des logiciels ou supprimer les données que l'application capture. Cette dernière version est le premier à être écrit dans la version 4.0, les versions précédentes ont été écrites en 2.2 et 3.2.
Pour désactiver le bouton d'Accueil en 2.2, j'ai associé l'application comme un remplacement à la maison, de sorte que le bouton de vient de rouvrir l'application, mais je ne peux plus utiliser cette méthode, qui peu nous empêche de faire nos mises à jour de l'application (nous ne voulons pas donner à l'utilisateur la possibilité de réactiver un Accueil par défaut, car cela conduirait à la suppression de vos données.
Le code que j'ai pour disableing le bouton Accueil dans le 3.2 est:
@Override
public void onAttachedToWindow() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
et, en vertu de l'onCreate:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
Mais quand j'exécute le même code qui ont travaillé sur mon 3.2 tablette, il ne fonctionne pas sur mon 4.0 tablet.
Je me demandais si il y a une nouvelle API ou une méthode qui 4.0 a qui nous permettra d'atteindre le même effet que j'ai actuellement dans mon 3.2 mise en œuvre.
Merci pour toute aide ou de la direction.
Adam
OriginalL'auteur adamacdo | 2012-04-09
Vous devez vous connecter pour publier un commentaire.
Comment une solution de contournement..
Écrire une seconde application qui implémente l'écran d'accueil, lorsque l'écran d'accueil touche est pressée, cette application sera au premier plan. À partir de cette application, vous avez ensuite besoin de pousser votre application principale retour au premier plan. Le seul hic, c'est que votre écran d'Accueil de l'app ne doit jamais besoin d'une mise à jour, mais vous devriez être en mesure de mettre à jour l'application principale librement sans l'onglet de demander à l'ensemble de la maison lanceur.
L'espoir qui fait sens..
l'utilisateur a toujours la possibilité de désactiver cette application
J'ai aussi besoin du même genre de scénario , mais Nous pouvez quitter l'application à l'aide de l'éclipse DDMS et aussi le long appuyez sur la touche home permet au gestionnaire de tâches. est-il un moyen de désactiver la pression longue du bouton d'accueil ?
Lorsque nous nous sommes heurtés à le problème concernant le Gestionnaire des Tâches, j'ai dû utiliser certains très douteux de la logique. J'ai d'abord créé un BaseActivity classe que l'ensemble de mes activités. J'ai créé un "navigateFromScreen" booléen que j'aurais défini à true, chaque fois que je passe sans arrêt des activités au sein de l'application et la valeur false OnCreate de la BaseActivity. OnPause, je voudrais vérifier si le navigateFromScreen variable == false et si je relance la dernière activité que j'ai chargé (détenues par une autre variable globale.) Il a travaillé pour l'empêcher de commutation pour toute autre application, mais c'était une douleur pour affiner.
OriginalL'auteur Chalaman
Pas.... Vous ne pouvez pas remplacer bouton home pour Android4.0 atleast.. en utilisant une solution de "hotveryspicy" Et ,Si vous souhaitez réagir pour le bouton d'ACCUEIL, de mettre en œuvre un écran d'accueil.
OriginalL'auteur 5hssba