Sto creando un semplice widget per la gestione dei contatti, che consente all'utente di comporre e inviare sms al contatto desiderato.Come avviare una nuova attività dalla schermata di blocco?
Funziona come "widget normale", ma quando lo aggiungo come widget di blocco su Android 4.2, l'app sms o l'app di composizione non si avvia. Beh, in effetti hanno una stella, ma "dietro" la schermata di blocco, quindi l'utente deve ancora sbloccare manualmente lo schermo per poter comporre/inviare sms.
Ho cercato il web per qualche soluzione, ma non è utile. Sono a conoscenza di FLAG_DISABLE_KEYGUARD o FLAG_SHOW_WHEN_LOCKED, ma dal momento che sms/dial apps non sono "mie", quindi non so se impostano il flag corretto. Come soluzione temporanea, ho provato a creare la mia attività che ha impostato quei flag e quindi ha semplicemente avviato uno desiderato (dial o sms), ma questo non aiuta.
C'è un modo per sbloccare lo schermo, ma questo comporta l'uso di KeyguardManager e KeyguardLock (che funzionano bene), ma in seguito all'uso di KeyguardLock.newKeyguardLock(), il telefono non riesce a girare automaticamente, sicuramente perché non rilascio questo blocco (fa sì che il lucchetto riappaia, che non è quello che voglio).
In effetti, questo widget dovrebbe funzionare in modo simile al widget predefinito di sms o al widget di posta sulla schermata di blocco?
Quindi, la mia domanda è: come raggiungerlo e iniziare una nuova attività da lockscreen?
Hi Filip. Mi stavo chiedendo la stessa cosa. Sono abbastanza nuovo per Android. Quindi puoi aiutarmi un po 'qui? Come si impostano i listener dei clic sui pulsanti o la visualizzazione nel layout del widget? Questo ha qualcosa a che fare con il metodo onReceive della classe AppWidgetProvider? –
Ciao, Bene, questo non è così ovvio e abbastanza difficile da spiegare (per non parlare dell'implementazione :)). Mi ci è voluto un po 'per capirlo. In breve, è necessario utilizzare le classi 'PendingIntent' e' RemoteView' per raggiungerlo. Il modo migliore è guardare all'interno [documentazione] (http://developer.android.com/guide/topics/appwidgets/index.html#implementing_collections). In breve, quando la vista è stata configurata tramite 'RemoteView', è sufficiente iniettare l'oggetto' PendingIntent' tramite il metodo 'RemoteView # setOnClickFillInIntent'. –