Я получаю уведомления с сервера, но я не могу правильно проанализировать данные.Как проанализировать сообщение, полученное от GCM?
это то, что получает от extras.toString();
Пачка [{MessageType = 1, contentText = тело содержания, от = 23105361257, contentTitle = заголовок содержания, сообщения = тестового сообщения, android.support.content.wakelockid = 1, collapse_key = do_not_collapse, tickerText = тикер текст message}]
Я хочу напечатать только сообщение из пакета в уведомлении. , а также если я получаю другое уведомление. Я хочу отобразить его ниже в том же уведомлении в стиле Bigview. Как это возможно?
например.
тестовое сообщение
другое тестовое сообщение
public class GCMNotificationIntentService extends IntentService {
public static final int notifyID = 9001;
public static final String TAG = "GCM Demo";
public GCMNotificationIntentService() {
super("GcmIntentService");
}
@Override
protected void onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
String messageType = gcm.getMessageType(intent);
if (!extras.isEmpty()) {
if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR
.equals(messageType)) {
sendNotification("Send error: " + extras.toString());
} else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED
.equals(messageType)) {
sendNotification("Deleted messages on server: "
+ extras.toString());
} else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE
.equals(messageType)) {
for (int i = 0; i < 5; i++) {
Log.i(TAG, "Working... " + (i + 1)
+ "/5 @ " + SystemClock.elapsedRealtime());
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
}
Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime());
sendNotification(extras.toString());
Log.i(TAG, "Received: " + extras.toString());
}
}
GcmBroadcastReceiver.completeWakefulIntent(intent);
}
private void sendNotification(String msg) {
Intent resultIntent = new Intent(this, HomeActivity.class);
resultIntent.putExtra("message", msg);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0,
resultIntent, PendingIntent.FLAG_ONE_SHOT);
NotificationCompat.Builder mNotifyBuilder;
NotificationManager mNotificationManager;
mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotifyBuilder = new NotificationCompat.Builder(this)
.setContentTitle("Notification")
.setContentText("New Notification")
.setSmallIcon(R.drawable.launcher_icons)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg));
mNotifyBuilder.setContentIntent(resultPendingIntent);
int defaults = 0;
defaults = defaults | Notification.DEFAULT_LIGHTS;
defaults = defaults | Notification.DEFAULT_VIBRATE;
defaults = defaults | Notification.DEFAULT_SOUND;
mNotifyBuilder.setDefaults(defaults);
mNotifyBuilder.setContentText(msg);
mNotifyBuilder.setAutoCancel(true);
mNotificationManager.notify(notifyID, mNotifyBuilder.build());
}
}
как насчет 'extras.getString (" message "," not set! ")'? – Yazan
Что вы получаете в намерении, если 'HomeActivity.class' –
@ PratikButani-AndroidButs: Можете ли вы мне помочь со второй частью? как показать сообщения в большом представлении. например. WhatsApp. если я получаю сообщения от одного и того же пользователя несколько раз, он показывает их в уведомлении .. как это сделать? в настоящее время .. уведомление заменяется новым. – Veer3383