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.