Also arbeite ich an einem einfachen Musik-Player. Der Musikplayer, wie er Namen nennt, kann einen Titel wiedergeben, die Wiedergabe anhalten, zum nächsten Titel weitergehen, zum vorherigen Titel zurückkehren und die Wiedergabe vollständig anhalten. Wenn Sie einen Song abspielen, wird eine Benachrichtigung mit dem Künstlernamen und dem Song-Namen angezeigt. Diese Benachrichtigung hat auch drei Schaltflächen (Aktionen): Stopp, Pause und Weiter.So verwenden Sie Aktionen von Notification, ohne zu starten Aktivität
Worauf ich Probleme habe, ist sicherzustellen, dass, wenn auf eine Aktion geklickt wird, die Wiedergabesteuerung für die Aktion ausgelöst wird, und nun, ich habe absolut keine Ahnung, wie das geht. Ich suchte die Android-Benachrichtigung: http://developer.android.com/guide/topics/ui/notifiers/notifications.html, aber es klärt nicht, oder widmet zu viele Informationen zu Benachrichtigungsaktionen.
Hier ist eine einfache Aktion zum Beispiel (die mit der Schaltfläche „Weiter“ klicken Sie auf die Meldung zugeordnet werden soll: Hinweis: gesamte Code unten geschrieben wird unter dem folgenden Paket beschrieben: com.deadpixels.light .Player und die Aktivität heißt: PlayerActivity
public void nextSong() {
if (position == songs.size() -1) {
Toast.makeText(this, "No more songs on queue", Toast.LENGTH_SHORT).show();
if(mPlayer.isPlaying()) {
return;
}
else {
buttonPlay.setImageResource(R.drawable.button_play);
}
return;
}
else {
position++;
playSong(songs.get(position));
}
}
Hier ist, was ich zu tun versucht:
Intent nextIntent = new Intent(KEY_NEXT);
PendingIntent nextPendingIntent = createPendingResult(0, nextIntent, 0);
Wo die Aktion für das NextIntent ist:
public static final String KEY_NEXT = "com.deadpixels.light.player.PlayerActivity.nextSong";
und dann auf die Benachrichtigung über addAction ich hinzufügen, dass():
mBuilder.addAction(R.drawable.not_action_next, "Next", nextPendingIntent);
Haben Sie Jungs wissen, was könnte ich versuchen? Mit dem, was ich oben erklärt habe, geht gar nichts, die Benachrichtigung erscheint, und hat drei Aktionsknöpfe, aber das Klicken auf sie tut nichts für mich.
An einem Punkt dachte ich vielleicht, wenn ich die Absicht Filter mit den Action-Namen hinzugefügt, aber dann dachte ich, nun, sie sind alle auf dem gleichen Namensraum, warum sollte ich?
Achten Sie darauf, die Empfängerinstanz zu speichern. Speichern wo? –
@anonymous Behalte in deinen Aktivitäten oder Diensten einen Hinweis darauf. – acj
Warum registrieren Sie BroadcastReceiver nicht in Manifest und als separate Klasse? – streamride