当前位置: 首页 > 面试题库 >

Android-GCM推送通知未出现在通知列表中

松兴邦
2023-03-14
问题内容

我正在使用第一个Android应用程序来使用Google Cloud
Messaging(GCM)服务进行推送通知。我已经可以从服务器应用程序成功发送消息,并将消息的内容记录在客户端应用程序的GCMIntentService类中的onMessage事件中。但是,我在设备上看不到任何视觉信息,表明已收到消息。我希望该消息会出现在手机的下拉通知列表中,就像iPhone一样。是否必须手动编码?还有一种通用的方法来显示消息,而不管当前哪个活动处于活动状态,并且应用程序是否在后台处于空闲状态?任何帮助表示赞赏。


问题答案:

此代码将在屏幕顶部的android系统栏中生成通知。此代码将创建一个新的意图,该意图将在单击顶部栏中的通知后将用户定向到“
Home.class”。如果您希望它根据当前活动执行特定的操作,则可以将广播请求从GCMIntentService发送到您的其他活动。

Intent notificationIntent=new Intent(context, Home.class);
generateNotification(context, message, notificationIntent);

private static void generateNotification(Context context, String message, Intent notificationIntent) {
    int icon = R.drawable.icon;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager)
            context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);
    String title = context.getString(R.string.app_name);

    // set intent so it does not start a new activity
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
            Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent =PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(0, notification);
}

请注意,此示例使用R.drawable和R.String中的资源,这些资源必须存在才能正常工作,但是应该可以给您带来启发。有关状态通知的更多信息,请参见http://developer.android.com/guide/topics/ui/notifiers/index.html,以及有关广播接收的信息。http://developer.android.com/reference/android/content/BroadcastReceiver.html



 类似资料:
  • 我正在尝试使用GCM推送通知。我的设备已注册到服务器,并且我还创建了设备注册id。但当我试图从服务器发送消息时,消息不会到达已注册的设备。谁能帮帮我吗? 我的主要activity 软件包COM.ATI.GCM; 导入com.google.android.gcm.gcmRegistratar; 导入Android.os.AsyncTask; 导入Android.os.bundle; 导入androi

  • 我在我的应用程序中使用谷歌云消息传递。我正面临这个问题。有时我更早收到推送通知,有时我甚至没有收到一条消息also.on我在切换无线或移动互联网数据时,通知即将到来…如何从谷歌云消息服务器快速获取通知……请帮助我提出你的建议…… http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-mes

  • 问题内容: 我正在开发一个应用程序,在该应用程序中,我需要实现推送通知。谁能建议我应该如何实施推送通知?如果可以为我提供一个很好的教程,那就太好了! 谢谢。 问题答案: //在应用程序启动时调用 //清单文件中的更改 // ReceiverC2DM.java ..... //服务器端…新测试应用 ServerSimulator.java

  • 我的 Android 应用需要简单的推送通知,以获取有关服务器上新数据外观的通知。Android提供了谷歌云消息(GCM),这似乎很合适。 但是,运行低于Android 4.0.4的设备需要手机上存在Google帐户(根据截至2012年10月1日的Google平台统计数据,目前约占Android手机的75%)。而且,要求用户在不相关的应用程序活动中间设置Google帐户似乎不是一种好的体验。 有没

  • 这是舱单 这是我的注册令牌类 这是我的Firebase服务类

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w