如何为GCM通知设置大图标

时间:2016-02-16 11:11:33

标签: android google-cloud-messaging

当应用程序处于后台时,GCM 3.0通知将由GCM SDK本身处理。但是我无法将应用程序处于后台时创建的通知设置为大图标。

{
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification" : {
        "body" : "great match!",
        "title" : "Portugal vs. Denmark",
        "icon" : "myicon"
    }
}

此处发送的myicon显示为小图标。

当应用在后台时,是否可以为通知设置大图标?

2 个答案:

答案 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());