2013-05-21 13 views
6

Meine App zeigt Benachrichtigungen an, und wenn eine Benachrichtigung angezeigt wird, wird ein Ton wiedergegeben. Aber wenn mein Telefon im "Silent Mode" ist, wird die Benachrichtigung nicht abgespielt. Ich möchte die Lautstärkeeinstellungen "überschreiben" und einen Ton wiedergeben, obwohl der Lautlos-Modus eingestellt ist. Es gibt einen Weg, es zu tun?Sound in Android-Benachrichtigungen wiedergeben, obwohl das Telefon im unbeaufsichtigten Modus eingestellt ist

+4

Wären Sie glücklich, wenn Sie in wichtigen Besprechungen den Lautlosmodus für Ihr Telefon einstellen und immer noch Benachrichtigungston von einer App erhalten? Es ist klar, warum der Benutzer den stillen Modus einstellt. –

+1

Ja, weil meine App eine Option wie folgt haben wird: "Sound abspielen, obwohl der Silent-Modus eingestellt ist", so kann der Benutzer diese Funktion nutzen oder nicht;) –

+0

Also nur Lösung ist Wechselmodus auf normal, Ton abspielen und dann lautlos stellen Modus zurück. –

Antwort

5

Hallo Sie Mediaplayer als Notifizierungston verwenden können, indem Sie eine Service-Start, dass Spielen Sie den MediaPlayer, wenn die Benachrichtigung angezeigt wird.

Um den Ton zu stoppen, stoppen Sie den Dienst im BroadCastReceiver des PendingIntents der Benachrichtigung.

Vergessen Sie auch nicht, den Ton zu stoppen, wenn die Benachrichtigung abgebrochen wird.

+0

Ich denke, deine Antwort kann ein guter Weg sein, es zu tun. Ich werde es versuchen, danke! –

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

Danke für Ihre Antwort. Wie kann ich es mit Benachrichtigungen verwenden? Sollte RINGER_MODE_NORMAL vor dem Aufruf von myNotificationManager.notify gesetzt werden und danach wieder auf stumm gesetzt werden? Es ist der richtige Weg, es zu tun? –

+0

Es funktioniert nicht :(Ich stelle den Modus auf normal, dann zeige ich eine Benachrichtigung, und dann stelle ich es wieder auf stumm, aber es gibt keinen Ton ... Wenn ich es nicht auf stille zurückstellen, spielt Sound .. Ich wünschte, dass NotificationManager.notify einen Rückruf hatte, um Code auszuführen, wenn die Benachrichtigung angezeigt wird :( –

1

Verwendung dieser Benachrichtigung Sound ermöglichen -

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

Dont geben vergessen Erlaubnis in manifest -

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

Was ist das? Ist das das gleiche ?: AudioManager am; am = (AudioManager) getBaseContext(). GetSystemService (Kontext. AUDIO_SERVICE); am.setRingerMode (AudioManager.RINGER_MODE_NORMAL); –

+0

Es wird Systemeinstellungen ändern, um Sound für Ihre Benachrichtigung zu spielen.Wenn es für Sie nicht funktioniert, versuchen Sie verschiedene Einstellungen wie 'SOUND_EFFECTS_ENABLED',' VOLUME_NOTIFICATION', 'VOLUME_SYSTEM' Liste verweisen [this] (http://developer.android.com/referen ce/android/provider/Settings.System.html). – mjosh

+0

-1: Zusätzliche Erlaubnis erforderlich, und ich denke nicht, dass der Benutzer glücklich wäre, seine Einstellungen geändert zu haben. Es gibt andere Wege, dies zu erreichen, die weniger hacky sind und dem Benutzer ein besseres Erlebnis bieten. – zoltish