0

Ich habe eine funktionierende MediaPlayer App. Die MainActivity (MyListActivity.java) bindet sich an einen Dienst (MediaService.java). Der Dienst spielt die Musik im Hintergrund.Wie man eine Benachrichtigung zu einem MediaPlayer Service hinzufügt?

Ich möchte eine Möglichkeit kennen, eine Benachrichtigung hinzuzufügen, damit der Benutzer die Spuren durch ihn steuern kann. Ich verwende eine Schnittstelle, um die Daten vom Service an die Aktivität zu übergeben.

Ich habe keine Ahnung, wo ich anfangen soll. Ich habe das Benachrichtigungs-Tutorial auf der Android Documentation versucht, aber ich weiß nicht, wie man Schaltflächen hinzufügt, und ich kann kein anständiges Tutorial für RemoteViews finden.

Dies ist, was ich für meine Benachrichtigung habe.

MediaService.java

play(Track track) { 
     ... 
     showNotification(track); 
    } 

    showNoticiation(Track track){ 
     NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.mipmap.dj_plink_avatar) 
       .setContentTitle(track.getTitle()) 
       .setContentText(track.getGenre()); 

     Intent resultIntent = new Intent(this, MyListActivity.class); 
     TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
     stackBuilder.addParentStack(MyListActivity.class); 
     stackBuilder.addNextIntent(resultIntent); 

     PendingIntent pIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
     builder.setContentIntent(pIntent); 

     notificationManager = (NotificationManager) getSystemService(Context 
       .NOTIFICATION_SERVICE); 
     notificationManager.notify(notificationID, builder.build()); 
    } 

PS: Api 15 Mindest bitte

+0

dies versuchen ..wenn Sie finden es nützlich ... https://www.binpress.com/tutorial/using-android-media-style-notifications-with-media-session-controls/165 –

+0

Das ist für api 21+ richtig? Ich möchte etwas, das mindestens unterstützt api 15 –

+0

@AftabHussain - es gibt eine compat-Version von allem erwähnt – ianhanniballake

Antwort

1

NotificationCompat.MediaStyle, Teil AppCompat, tut alles für das Styling erforderlich :) und arbeitet wieder in API 7.

Sie müssen immer noch Ihre eigenen PendingIntent s für jede Aktion erstellen, aber diese können auf jede Art und Weise gemacht werden, die Sinn macht. Im Allgemeinen bedeutet dies, PendingIntent.getService() mit einem Intent zu verwenden, der auf Ihren Dienst verweist, und eine Aktion, die Sie in onStartCommand() verwenden können, um zu unterscheiden, welche Taste gedrückt wurde.

Hinweis: Stellen Sie sicher, dass Sie v7.app.NotificationCompat verwenden, nicht die v4-Version.

+0

Es funktioniert! Danke, Alter! Wusste gar nicht, dass es eine Kompat-Version gab. –