Stavo anche provando a implementare il rilevamento della pressione dei tasti del volume nella mia app e l'ho lasciato parte da sviluppare più tardi una volta completata la parte principale. Sono stato in grado di rilevare la pressione del tasto del volume mentre lo schermo è acceso anche quando il telefono è bloccato, da un servizio in background.
Background Video Recorder 2 (BVR2) (e possibile anche BVR1, non l'ho provato) è una delle app in grado di rilevare la pressione del tasto del volume anche quando lo schermo è spento. Durante il tentativo di implementare il rilevamento dei tasti del volume mentre lo schermo è spento nella mia app, ho installato BVR2, sperando di scoprire come funziona. Con mia sorpresa ha dato alla mia app la capacità di rilevare i tasti del volume anche quando lo schermo è spento. La mia app aveva un ContentObserver per monitorare le modifiche al volume, ma non funzionava quando lo schermo era spento. Quando BVR2 è attivo, la mia app può anche rilevare la pressione del tasto del volume quando lo schermo è spento. Sto ancora scavando.
Ma BVR2 ha una propria azione di trigger, ovvero registrare video, un'azione che non si desidera eseguire solo per il piacere dell'applicazione che rileva la pressione del tasto del volume.
Un'altra app è QuickClick. Questa app può dare alla tua app quello che manca, il potere di rilevare la pressione dei tasti del volume anche quando lo schermo è spento, senza ulteriori azioni indesiderate. Basta installare QuickClick e non configurare alcuna azione. Crea un ContentObserver
per monitorare le modifiche del volume dello streaming e sei pronto. Ora l'app sarà in grado di rilevare la pressione dei tasti del volume anche quando lo schermo è spento.
Si noti che la mia app funziona come servizio in background.
Entrambe le app sopra menzionate sono destinate ad altri usi, ma utilizzano il rilevamento del tasto del volume per eseguire azioni. Non sono in alcun modo collegato a nessuna delle app menzionate.
Se queste app, e forse altre decine, possono rilevare la pressione del tasto del volume, è possibile farlo.Chiedo agli esperti di scoprire come farlo, in modo che possiamo implementare nella nostra app senza fare affidamento su un'altra app.
Se trovi utile questa risposta, si prega di votare.
fonte
2016-05-28 18:37:49
Avete qualche esempio di qualcosa che sembra fare questo, il che suggerirebbe che sia persino possibile? Al di fuori del caso limite in cui la CPU dell'applicazione è in esecuzione ma lo schermo è spento, c'è qualche indicazione che il kernel si sveglia e viene informato del fatto che il tasto è stato premuto? Se non fosse necessario hardware o almeno mods di firmware radio. Solo se/quando il kernel è a conoscenza dell'evento chiave potrebbe diventare un problema nel persuadere la piattaforma a farla conoscere al suo codice. –
Purtroppo no. L'unica cosa che riesco a pensare sono i mediaplayer. Sto iniziando a credere che la mia idea, per quanto sia semplice (controlla le notifiche senza dover togliere il telefono dalla tasca, semplicemente premendo il pulsante del volume che farà vibrare il tuo dispositivo se hai notifiche in sospeso) è semplicemente troppo complesso da creare. –
Il LED di solito non lampeggia se hai nuove notifiche nella barra di stato, incluse quelle personalizzate da app di terze parti? –