我在我的应用中使用GCM推送通知。但我没有收到短信和图标。它只显示白色背景。
这是我们在我的应用中接收通知的代码
public void onMessageReceived(String from, Bundle data) {
//Getting the message from the bundle
String message = data.getString("message");
//Displaying a notiffication with the message
String body = null;
String title = null;
try{
String notificationJSONString = data.getString("notification");
//then you can parse the notificationJSONString into a JSON object
JSONObject notificationJSON = new JSONObject(notificationJSONString );
body = notificationJSON.getString("body");
title = notificationJSON.getString("title");
}catch (Exception e){
e.printStackTrace();
}
// sendNotification(message);
sendNotification(body,title);
}
//This method is generating a notification and displaying the notification
private void sendNotification(String message,String title) {
Intent intent = new Intent(this, NavigationDrawerActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("firsttab","notify");
int requestCode = 0;
PendingIntent pendingIntent = PendingIntent.getActivity(this, requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
NotificationCompat.Builder noBuilder = new NotificationCompat.Builder(this)
// .setSmallIcon(R.mipmap.philips_launcher)
.setSmallIcon( getNotificationIcon())
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
.setSound(sound)
.setColor(Color.parseColor("#0089C4"))
.setStyle(inboxStyle)
// .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
.setContentIntent(pendingIntent);
/* if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder.setSmallIcon(R.drawable.icon_transperent);
} else {
builder.setSmallIcon(R.drawable.icon);
}*/
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, noBuilder.build()); //0 = ID of notification
}
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP);
return useWhiteIcon ? R.drawable.not_icon : R.mipmap.philips_launcher;
}
请帮我解决这个问题。在高级方面,我们将不胜感激。 我应用了stackoverflow中给出的大量代码,但仍面临同样的问题。
答案 0 :(得分:0)
在消息字符串中,您将收到通知,无需进一步解析 String message = data.getString(" message"); 如果该消息没有标题,您可以在您的应用程序的基础上给出标题
答案 1 :(得分:0)
更改此代码并尝试使用我希望它能正常工作。
您最后错过了.Build();
。
自:
NotificationCompat.Builder noBuilder = new NotificationCompat.Builder(this)
// .setSmallIcon(R.mipmap.philips_launcher)
.setSmallIcon( getNotificationIcon())
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
.setSound(sound)
.setColor(Color.parseColor("#0089C4"))
.setStyle(inboxStyle)
// .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
.setContentIntent(pendingIntent);
要:
NotificationCompat.Builder noBuilder = new NotificationCompat.Builder(this)
// .setSmallIcon(R.mipmap.philips_launcher)
.setSmallIcon( getNotificationIcon())
.setContentTitle(title)
.setContentText(message)
.setAutoCancel(true)
.setSound(sound)
.setColor(Color.parseColor("#0089C4"))
.setStyle(inboxStyle)
// .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
.setContentIntent(pendingIntent).build();
答案 2 :(得分:0)
通知消息的白色背景问题已知且正在修复,修复程序应尽快发布。另一个选择是使用数据消息并在onMessageReceived回调中自己管理通知的创建。