0

In Lollipop und unten konnte man leicht einen Ton nur Benachrichtigung durch Weglassen des Icon, Inhalt Titel und Inhalt Text bei der Konstruktion, wie so senden:Android Marshmallow Sound nur Benachrichtigung?

NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()); 
builder.setSound(Uri.parse(ringtone)); 
notificationManager.notify(9998, builder.build()); 

In Eibisch, ich bin gezwungen, zumindest ein Symbol, oder ich bekomme eine Ausnahme "kein gültiges kleines Symbol". Ich möchte das Benachrichtigungssystem verwenden, möchte jedoch nicht immer eine Benachrichtigung in der Benachrichtigungsleiste anzeigen. Ist das mit Marshmallow möglich oder sollte ich meinen Benachrichtigungston mit dem Media Player abspielen, obwohl ich oder der Benutzer manchmal eine Benachrichtigung anzeigen möchte?

+0

"sollte ich meinen Benachrichtigungston mit dem Media Player abspielen" - ja, bitte. "Obwohl manchmal ich oder der Benutzer eine Benachrichtigung anzeigen möchte?" - Verwenden Sie 'if', um in Ihren Code zu verzweigen, verwenden Sie eine' Notification', wenn Sie ein Icon zeigen wollen, oder verwenden Sie 'MediaPlayer' in Fällen, in denen Sie nur Audio ausgeben möchten. – CommonsWare

Antwort

0

Ich habe irgendwo gelesen, dass die Dokumentation sagte, dass Symbol erforderlich war, auch wenn es keine Ausnahme ausgelöst hat, wenn in Lollipop und darunter weggelassen. Nachdem ich mich mit dem MediaPlayer beschäftigt hatte, entschied ich mich schließlich für den RintoneManager. Ich bin mit der Hinweis-Sounds, so selber kann einige Typisierung ebenso sparen und dazu noch ein kurzes

try { 
    RingtoneManager.getRingtone(getApplicationContext(), Uri.parse(ringtone)).play(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

den Ton auszulösen, ich werde die Notifizierung sparen, wenn ich eine tatsächliche Mitteilung benötigen. Ich plante bereits, ob, wenn abhängig davon, ob die Benachrichtigung in der Benachrichtigungsleiste angezeigt werden soll oder nicht.

+0

Können Sie bitte bestätigen, ob dieser Ansatz auch auf Marshmallow funktioniert? Ich benutze den gleichen Code, der mit Ausnahme von Android M perfekt funktioniert. Es spielt einfach nichts. –

Verwandte Themen