当应用程序处于后台时,GCM 3.0
通知将由GCM SDK
本身处理。但是我无法将应用程序处于后台时创建的通知设置为大图标。
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
此处发送的myicon
显示为小图标。
当应用在后台时,是否可以为通知设置大图标?
答案 0 :(得分:0)
我建议您更新以使用FCM
和Firebase进行通知,但如果您现在正在使用GCM
我假设您有一个扩展BroadcastReceiver
的注册接收器类。在那里你应该覆盖onReceive
,这样你就可以构建和显示你喜欢的通知。
关于通知的官方文档解释了所有选项,包括设置大图标here
还有一些示例代码here。
答案 1 :(得分:0)
您可以在构建通知时使用setLargeIcon()
方法为通知设置大图标。
public class MyGcmListenerService extends GcmListenerService {
private static final String TAG = "MyGcmListenerService";
............................
.............................
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.icon)
.setColor(ContextCompat.getColor(this, R.color.colorAccent))
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.icon))
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setGroupSummary(true)
.setStyle(new NotificationCompat.BigTextStyle().bigText(job_title))
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify((int) System.currentTimeMillis() /* ID of notification */, notificationBuilder.build());