Odbieraj wydarzenia prasowe z kluczem głośności, gdy telefon jest w głębokim śnie

Próbuję przechwycić zdarzenia naciśnięcia przycisku zwiększania / zmniejszania głośności, gdy telefon jest w trybie głębokiego uśpienia. Przeczytałem kilka artykułów i tutaj co zrobiłem.

W działaniachonCreate metoda, którą ustawiłemWakeLock

PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeLock");
wakeLock.acquire();

Przeczytałem, że nawet jeśli mój ekran jest zablokowany, jeśli go ustawię, moja aplikacja odpowie na zdarzenia. Dodałem również uprawnienia do Manifestu na Androida.

<uses-permission android:name="android.permission.WAKE_LOCK" />

Potem wonCreate metoda Deklaruję mój odbiornik rozgłoszeniowy

VolReceiver volumeBroadcastReceiver = new VolReceiver();

IntentFilter filter = new IntentFilter();
filter.addAction("android.media.VOLUME_CHANGED_ACTION");
registerReceiver(volumeBroadcastReceiver, filter);

To wszystko działa całkiem nieźle, gdy aplikacja jest na pierwszym planie lub w tle, ale potem blokuję ekran telefonów, naciskając przycisk zasilania, przestań odbierać transmisje, myślę, żePowerManager musi rozwiązać ten problem, ale tak nie jest. Więc pomóż mi, podaj trochę informacji.

questionAnswers(2)

yourAnswerToTheQuestion