2012-11-16 19 views
7

La mia app mostra una finestra di dialogo per l'utente prima della schermata di blocco. È un'attività semplice che contiene DialogFragments (dalla libreria di supporto come questa app viene eseguita su 2.2+).Le finestre mobili di Android accoppiate con FLAG_SHOW_WHEN_LOCKED non funzionano

Dal momento che l'effettiva attività che ha visualizzato quei dialoghi non era una finestra mobile per gli standard di Android,

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 

ha funzionato bene.

Tuttavia, stavo pensando che avrei usato un'attività che sembra invece una finestra di dialogo. Tutti i temi di dialogo (Holo, ecc), però, hanno questa voce:

<item name="android:windowIsFloating">true</item> 

Questo, per qualche ragione fa sì che la bandiera della finestra di essere completamente ignorato. È interessante notare che l'attività viene visualizzata dopo che l'utente ha sbloccato lo schermo.

Perché dovrebbe essere così, e c'è un modo per aggirarlo?

+1

Affetto dallo stesso problema ... Sei riuscito a trovare nessuna arounds di lavoro ? –

+0

Ho finito per attaccare un'attività che avvia una finestra di dialogo non cancellabile e che ha completamente disattivato la disattivazione della protezione della tastiera dall'app. –

+0

avendo lo stesso problema, voglio rendere visibile l'attività "transperant" sullo schermo di blocco, ma non sembra possibile –

risposta

4

Soffrendo dello stesso problema. L'unica cosa che sembra funzionare in questo numero è

KeyguardManager myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
myLock = myKeyGuard.newKeyguardLock("tagName"); 
myLock.disableKeyguard(); 

Non dimenticare di usare il permesso blocco della tastiera in palese:

<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/> 
+3

È un'API deprecata, ma funziona in qualche modo, quindi ha ancora bisogno di un po 'di lavoro per ottenere risultati coerenti. Tuttavia, questo sembra il meglio che possiamo fare. –

+1

Risposta molto utile. Peccato che questo sia deprecato perché esiste un modo "migliore" di fare quello che vuoi, solo che il modo "migliore" non funziona in tutti i casi che il modo "peggiore" è. – user1445967

+1

qualcuno ha trovato una soluzione migliore da usare? questa soluzione sblocca lo schermo, voglio mantenere lo schermo bloccato e visualizzare la finestra di dialogo come messaggio whatsapp. sembra possibile perché Whatsapp ha questo –

Problemi correlati