如何在 Android + GCM 中获得带有声音 + 自定义应用程序图标的推送通知
Posted
技术标签:
【中文标题】如何在 Android + GCM 中获得带有声音 + 自定义应用程序图标的推送通知【英文标题】:How to get a push notification with sound + custom app icon in Android + GCM 【发布时间】:2017-06-26 11:57:11 【问题描述】:我正在为一个学校项目构建一个聊天应用程序。到目前为止一切正常。所以我能够通过 GCM 获得推送通知。但那些只是默默地显示。你能帮我弄清楚如何用声音(默认声音足够好)和我自己的应用程序图标来制作它们吗?
编辑:不可能使用 Firebase。我们必须为项目使用 GCM。
您可以在下面看到我处理通知的代码。谢谢。
NotificationHandler notificationHandler = new NotificationHandler(getApplicationContext());
//If the app is in foreground
if (!NotificationHandler.isAppIsInBackground(getApplicationContext()))
//Sending a broadcast to the chatroom to add the new message
LocalBroadcastManager.getInstance(this).sendBroadcast(pushNotification);
else
//If app is not in foreground displaying push notification
notificationHandler.showNotificationMessage(title, message);
【问题讨论】:
试试***.com/questions/2618182/…或***.com/questions/10335057/… 建议:使用 FCM 和通知构建器构建来构建通知 @Shubham 我应该提到我必须使用 GCM,因为学校服务器只能使用它。感谢您的建议 通过以下链接可以获得通知中的振动、声音、灯光和图标代码......***.com/questions/44569808/… 您能添加一个您要发送的示例负载吗? 【参考方案1】:试试这个,它对我有用
protected void displayNotification(Context context, String[] strContent)
try
int numMessages = 0;
/* Invoking the default notification service */
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setContentTitle("New "+strContent[0].trim());
mBuilder.setContentText("You've received new "+strContent[0].trim());
mBuilder.setTicker("New "+strContent[0].trim()+" Alert!");
mBuilder.setSmallIcon(R.drawable.ic_notif);
mBuilder.setAutoCancel(true);
mBuilder.setColor(context.getResources().getColor(R.color.ColorPrimary));
mBuilder.setVisibility(Notification.VISIBILITY_PUBLIC);
mBuilder.setDefaults(Notification.DEFAULT_ALL);
mBuilder.setVibrate(new long[] 1000, 1000, 1000, 1000, 1000);
mBuilder.setLights(Color.RED, 3000, 3000);
mBuilder.setNumber(++numMessages);
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
String[] events = new String[strContent.length-1];
for(int i=0; i<strContent.length-1; i++)
events[i] = new String(strContent[i+1].trim());
inboxStyle.setBigContentTitle("New "+strContent[0].trim()+" received!");
for (int i=0; i < events.length; i++)
inboxStyle.addLine(events[i]);
mBuilder.setStyle(inboxStyle);
/* Creates an explicit intent for an Activity in your app */
Intent resultIntent = new Intent(this, HomeActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(HomeActivity.class);
/* Adds the Intent that starts the Activity to the top of the stack */
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
/* notificationID allows you to update the notification later on. */
mNotificationManager.notify(9999, mBuilder.build());
catch (Exception e)
// TODO: handle exception
e.printStackTrace();
【讨论】:
以上是关于如何在 Android + GCM 中获得带有声音 + 自定义应用程序图标的推送通知的主要内容,如果未能解决你的问题,请参考以下文章