Question

Je travaille sur un remplacement pour l'application de stock cars Accueil pour un peu, et je suis complètement perplexe sur la façon de passer outre le bouton Home pour que mon application sera ramené au premier plan lorsque le téléphone est connecté. Ceci est la façon dont fonctionne Car Accueil, il doit y avoir un moyen.

Il semble que BroadcastReceivers ne fonctionnera pas, parce que l'intention qui est diffusé chaque fois que le bouton Home est pressée sera toujours la cause de l'application par défaut homescreen au lancement; Je ne peux pas l'empêcher. Je peux passer outre le bouton Accueil à partir de mon application, mais cela me fait pas bon puisque ce besoin de travailler lorsque l'utilisateur est en dehors de mon application. Car Home ne fait rien aussi bizarre comme lui-même ensemble que l'application par défaut de l'écran d'accueil alors qu'il est en cours d'exécution (j'ai vérifié le logcat pour vous assurer).

J'ai été vraiment battre ma tête contre le mur à ce sujet. Est-ce que quelqu'un a des idées, ou pouvez-vous me diriger au moins dans la bonne direction?

Était-ce utile?

La solution

Eh bien, après plusieurs mois, j'ai enfin trouvé la réponse à cette question. La clé est la « android.dock_home » élément méta-données, trouvé ici:

http://developer.android.com/reference/android/ contenu / Intent.html # METADATA_DOCK_HOME

En utilisant dans votre AndroidManifest.xml, vous pouvez faire votre demande de dock devient l'application de la maison temporairement. Pour ce faire, ajoutez cette ligne à l'intérieur des balises AndroidManifest.xml d'activité pour l'activité de l'application dock:

<meta-data android:name="android.dock_home" android:value="true" />

Si la valeur est définie sur true, aussi longtemps que votre téléphone est connecté sur le bouton Home vous revenir à l'application de quai. Après le désarrimage, le bouton Home vous ramènera à votre application domestique normal.

Autres conseils

Malheureusement, il n'y a aucun moyen dans les API publiques pour remplacer le bouton d'accueil sans que l'utilisateur confirmer.

Votre meilleur pari serait de mettre en œuvre une intention de CATEGORY_HOME. Cela signifie que lorsque l'utilisateur appuie sur la maison, ils seront présentés avec la possibilité d'exécuter la norme Accueil ou la vôtre et faire le vôtre par défaut s'ils voulaient.

Lorsque vous a été lancé votre application peut alors vérifier si le téléphone a été accosté. Si le téléphone n'est pas connecté, vous pouvez alors ouvrir l'écran standard d'accueil et fermez l'application avant tout est affiché.

Vous devez filtre l'intention correcte dans votre manifeste pour l'application de lancer automatiquement lorsque vous connectez le téléphone. Reportez-vous à http://developer.android.com/reference/android/ contenu / Intent.html # CATEGORY_CAR_DOCK pour l'information.

J'ai trouvé un moyen d'aborder la touche HOME. Pour votre application définir le manifeste comme

<action android:name="android.intent.action.MAIN" />                              
<category android:name="android.intent.category.HOME" />                                
<category android:name="android.intent.category.DEFAULT" />                            
<category android:name="android.intent.category.MONKEY"/> 

ur application est une application de lancement alternatif.

Utilisez le adb, et désactiver l'application lanceur en utilisant le gestionnaire de paquets

h désactiver com.android.launcher2.

Maintenant la presse touche Home va laways rester dans le même écran.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top