Eylemlerle bildirim oluşturdum. Ve bildirim ile kullanım için hizmet kullanıyorum. Her eylem için biraz fazladan bekleyen niyet yarattım. Ama hizmette, niyet için fazladan almaya çalıştığımda bunun yanlış bir değeri var.az bildirim eylemi için bir hizmet
sınıf NotificationCreator
public Notification createConnectedNotification(){
Context context = TeamlabApplication.getInstance().getApplicationContext();
CharSequence comeToWork = context.getString(R.string.toWork);
CharSequence goFromDinner = context.getString(R.string.fromDinner);
PendingIntent actionComeIntent = createActionSendPendingIntent(context, comeToWork.toString());
Notification.Action.Builder sendMessageToWork =
new Notification.Action.Builder(R.mipmap.icon_notification_action_send, comeToWork, actionComeIntent);
PendingIntent actionDinnerIntent = createActionSendPendingIntent(context, goFromDinner.toString());
Notification.Action.Builder sendMessageFromDinner =
new Notification.Action.Builder(R.mipmap.icon_notification_action_send, goFromDinner, actionDinnerIntent);
PendingIntent activityIntent = createActivityPendingIntent(context);
Notification.Builder builder = new Notification.Builder(context)
.setSmallIcon(R.mipmap.icon_notification_main)
.setContentTitle("Connected to WI-FI")
.setContentText("You connected to work WI-FI. Do you want to send message in teamLab")
.setContentIntent(activityIntent)
.setLights(Color.WHITE, 1000, 1000)
.setAutoCancel(true)
.addAction(sendMessageToWork.build())
.addAction(sendMessageFromDinner.build());
return builder.build();
}
private PendingIntent createActionSendPendingIntent(Context context, String extraMessage){
Intent intent = new Intent(context, NotificationService.class);
intent.putExtra(NotificationService.MESSAGE_EXTRA, extraMessage);
return PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);
}
sınıf NotficationService
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null) {
AppLog.d("Extra is: " + intent.getStringExtra(MESSAGE_EXTRA));
}
String toWork = "To work" , goFromDinner = "From dinner"
: İşte benim kodudur. Bildirimde, goFromDinner
dizgisi ile acton bastım, ancak Extra i'de To work
sonucuna vardım. Nasıl düzeltilir?