라디오를 재생하는 서비스가 있습니다 &가 알림을 생성합니다. 알림에는 제목, 텍스트, 시간이 포함되어야합니다. & 버튼 (일시 중지/재생). 나머지 내용을 추가했습니다. & 알림이 표시됩니다. 그러나 알림에 단추를 추가하는 방법에 대해 잘 모르겠습니다. 검색 할 때 RemoteView, RemoteControlClient & MediaStyles를 사용할 수 있음을 발견했습니다. 그러나 RemoteControlClient & MediaStyles는 모든 버튼으로 재생중인 미디어 파일 (이전, 일시 중지, 재생, 뒤로)이있을 때 사용됩니다. 그래서 나는 그것에 대해 정말로 혼란스러워합니다. 아무도 나에게 권할 수 있습니까, 어느 것이 Lollypop에 대한 알림에 버튼을 추가하는 데 사용할 수 있습니다.Lollipop에서 알림 일시 중지/재생 버튼을 추가하는 방법은 무엇입니까?
3
A
답변
0
먼저 당신이 23 API에서 더 이상 사용되지 않습니다 addAction
을 알 필요가 통지를 보여
전화 showNotification()
방법을 관련시키는 this을 읽을
private void showActionButtonsNotification() {
Notification.Builder notif;
NotificationManager nm;
notif = new Notification.Builder(getApplicationContext());
notif.setSmallIcon(R.mipmap.ic_launcher);
notif.setContentTitle("Hi there!");
notif.setContentText("This is even more text.");
Uri path = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
notif.setSound(path);
nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent yesReceive = new Intent();
yesReceive.setAction(MyNotificationReceiver.RESUME_ACTION);
PendingIntent pendingIntentYes = PendingIntent.getBroadcast(this, MyNotificationReceiver.REQUEST_CODE_NOTIFICATION, yesReceive, PendingIntent.FLAG_UPDATE_CURRENT);
notif.addAction(R.drawable.resume, "resume", pendingIntentYes);
Intent yesReceive2 = new Intent();
yesReceive2.setAction(MyNotificationReceiver.STOP_ACTION);
PendingIntent pendingIntentYes2 = PendingIntent.getBroadcast(this, MyNotificationReceiver.REQUEST_CODE_NOTIFICATION, yesReceive2, PendingIntent.FLAG_UPDATE_CURRENT);
notif.addAction(R.drawable.stop, "stop", pendingIntentYes2);
Intent maybeReceive2 = new Intent();
maybeReceive2.setAction(MyNotificationReceiver.CANCEL_ACTION);
PendingIntent pendingIntentMaybe2 = PendingIntent.getBroadcast(this, MyNotificationReceiver.REQUEST_CODE_NOTIFICATION, maybeReceive2, PendingIntent.FLAG_UPDATE_CURRENT);
notif.addAction(R.drawable.cancel, "cancel", pendingIntentMaybe2);
assert nm != null;
nm.notify(MyNotificationReceiver.REQUEST_CODE, notif.getNotification());
}
은 클릭을 받아 봐하는 MyNotificationReceiver
클래스를 작성
public class MyNotificationReceiver extends BroadcastReceiver {
public static int REQUEST_CODE_NOTIFICATION = 1212;
public static int REQUEST_CODE = 10;
public static final String RESUME_ACTION = "RESUME_ACTION";
public static final String STOP_ACTION = "STOP_ACTION";
public static final String CANCEL_ACTION = "CANCEL_ACTION";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.e("action", action);
if (intent.getAction() != null) {
switch (intent.getAction()) {
case RESUME_ACTION :
Toast.makeText(context, "resume", Toast.LENGTH_SHORT).show();
// you resume action
break;
case STOP_ACTION :
Toast.makeText(context, "stop", Toast.LENGTH_SHORT).show();
// you stop action
break;
case CANCEL_ACTION:
Toast.makeText(context, "cancel", Toast.LENGTH_SHORT).show();
// you cancel action
break;
}
}
}
}
마지막으로에 receiver
을 추가하십시오.
<receiver android:name=".MyNotificationReceiver">
<intent-filter>
<action android:name="RESUME_ACTION"/>
<action android:name="STOP_ACTION"/>
<action android:name="CANCEL_ACTION"/>
</intent-filter>
</receiver>
사용 원격 전망하고 사탕을 위해 작동 할 링크 http://www.androidbegin.com/tutorial/android-custom-notification-tutorial/ – Ramesh
에 따라? –
최근 원격보기가있는 하나의 응용 프로그램에서 알림을 구현했습니다. 롤리팝에서도 잘 작동합니다. – Ramesh