2013-05-21 25 views
6

Moja aplikacja wyświetla powiadomienia, a po wyświetleniu powiadomienia odtwarzany jest dźwięk. Ale kiedy mój telefon jest w "trybie cichym", powiadomienie nie jest odtwarzane. Chcę "przesłonić" ustawienia głośności i odtwarzać dźwięk, chociaż ustawiono tryb cichy. Jest na to sposób?Odtwarzaj dźwięk w powiadomieniach systemu Android, chociaż ustawiony jest tryb cichy telefonu

+4

Czy byłbyś zadowolony, jeśli ustawisz tryb cichy dla swojego telefonu podczas ważnego spotkania i nadal otrzymujesz dźwięk powiadomienia z jednej aplikacji? Jest oczywiste, dlaczego użytkownik ustawia tryb dyskretny. –

+1

Tak, ponieważ moja aplikacja będzie miała opcję podobną do tej: "odtwarzaj dźwięk, chociaż ustawiono tryb cichy", więc użytkownik może korzystać z tej funkcji, lub nie;) –

+0

Tak więc tylko rozwiązanie zmienia się na normalne, odtwarzaj dźwięk powiadomienia, a następnie ustaw cichy Powrót trybu. –

Odpowiedz

5

Hi można wykorzystać MediaPlayer jak dźwięk powiadomień, uruchamiając usługę, która odtwarzaj MediaPlayer po wyświetleniu powiadomienia.

Aby dźwięk się zatrzymał, zatrzymaj usługę w BroadCastReceiver powiadomienia PendingIntent.

Nie zapomnij również zatrzymać dźwięku po anulowaniu powiadomienia.

+0

Myślę, że twoja odpowiedź może być dobrym sposobem na zrobienie tego. Spróbuję, dzięki! –

4
AudioManager am; 
am= (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE); 
am.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
+0

Dzięki za odpowiedź. Jak mogę go używać z powiadomieniami? Należy ustawić RINGER_MODE_NORMAL przed wywołaniem myNotificationManager.notify i ustawić go po cichu ponownie? To jest właściwy sposób na zrobienie tego? –

+0

Nie działa :(Ustawiam tryb na normalny, a następnie wyświetlam powiadomienie, a następnie ustawiam go z powrotem na cichy, ale nie ma dźwięku ... Jeśli nie ustawię go z powrotem na cichy, dźwięk będzie odtwarzany .. Żądam, aby NotificationManager.notify miał wywołanie zwrotne do wykonania kodu po wyświetleniu powiadomienia :( –

1

wykorzystanie tego, aby włączyć powiadomienia dźwiękowe -

Settings.System.putInt(getContentResolver(),android.provider.Settings.System.NOTIFICATION_SOUND, 1); 

Nie zapomnij wyrazić zgodę w manifeście -

<uses-permission android:name="android.permission.WRITE_SETTINGS"/> 
+0

Co to jest? Jest to to samo, co to: Menedżer audio am; am = (Menedżer plików audio) getBaseContext(). GetSystemService (Kontekst. AUDIO_SERVICE); am.setRingerMode (AudioManager.RINGER_MODE_NORMAL); –

+0

Zmodyfikuje ustawienia systemowe, aby odtwarzać dźwięk dla powiadomienia. Jeśli nie będzie działać, spróbuj użyć innych ustawień, takich jak 'SOUND_EFFECTS_ENABLED',' VOLUME_NOTIFICATION', 'VOLUME_SYSTEM'. list refer [to] (http://developer.android.com/referen ce/android/provider/Settings.System.html). – mjosh

+0

-1: Wymagane dodatkowe pozwolenie i nie sądzę, że użytkownik byłby zadowolony, gdyby jego Ustawienia zostały zmienione. Istnieją inne sposoby na osiągnięcie tego, które są mniej hackowate i dają użytkownikowi lepsze wrażenia. – zoltish