Domanda

Ho lavorato su una sostituzione per lo stock da auto e app per un po ', e io sono completamente perplesso su come ignorare il tasto Home in modo che la mia app sarà riportato in primo piano ogni volta che è ancorata al telefono. Questo è il modo in cui funziona la casa dell'automobile, quindi ci deve essere un modo.

Sembra che BroadcastReceivers non funzionerà, perché l'intento che viene trasmesso ogni volta che si preme il tasto Home sarà ancora causa l'applicazione di default homescreen di lancio; Non posso impedirlo. Posso ignorare il pulsante Home da dentro il mio app, ma che mi fa non va bene in quanto questa ha bisogno di lavorare quando l'utente è fuori dalla mia app. Casa dell'automobile, inoltre, non fa nulla di strano, come set di se stesso come l'applicazione di default homescreen mentre è in esecuzione (ho controllato il logcat per essere sicuri).

mi è stato davvero battere la testa contro il muro su questo. Qualcuno ha qualche idea, o si può almeno punto nella direzione giusta di me?

È stato utile?

Soluzione

Bene, dopo molti mesi ho finalmente trovato la risposta a questa domanda. La chiave è la "android.dock_home" elemento di metadati, trovate qui:

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

Utilizzando questo nel vostro AndroidManifest.xml, è possibile rendere l'applicazione dock diventare temporaneamente l'applicazione di casa. Per fare questo, aggiungere questa riga al AndroidManifest.xml all'interno dei tag di attività per l'attività dock app:

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

Se il valore è impostato su true, fino a quando il telefono è inserito il tasto Home vi riporterà al app dock. Dopo lo sgancio, il tasto Home vi riporta alla vostra casa normale app.

Altri suggerimenti

Purtroppo, non c'è modo nelle API pubbliche per sostituire il pulsante Home senza che l'utente conferma di esso.

La cosa migliore sarebbe quella di implementare un intento CATEGORY_HOME. Ciò significa che quando un utente preme casa sarebbero stati presentati con la possibilità di eseguire lo standard casa o il vostro e fare la vostra default se volevano.

Quando è stata lanciata l'applicazione si potrebbe poi verificare se il telefono è stato agganciato. Se il telefono non è ancorato si potrebbe poi aprire la schermata Home di serie e vicino la vostra applicazione prima che venga visualizzato nulla.

È necessario il filtro intento corretta nel manifesto l'applicazione per lanciare automaticamente quando si collega il telefono. Fare riferimento a http://developer.android.com/reference/android/ contenuti / Intent.html # CATEGORY_CAR_DOCK per le informazioni.

Ho trovato un modo per affrontare tasto HOME. Per la vostra applicazione impostare il manifestarsi come

<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"/> 

Ora ur applicazione è un'applicazione Launcher alternativo.

Usa l'adb, e disabilitare l'avvio delle applicazioni utilizzando Package Manager

pm disable com.android.launcher2.

Ora la stampa tasto Home sarà laways rimanere nella stessa schermata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top