当前位置: 首页 > 知识库问答 >
问题:

GCM不工作

公西浩
2023-03-14

我正在学习GCM(Google cloud Messaging)
我完成了以下步骤

1-激活并获得浏览器应用程序的密钥

创建权限以阻止其他Android应用程序注册和接收Android应用程序的消息

为com.google.android.c2dm.intent.receive创建了一个接收器,类别设置为ApplicationPackage。接收方应该需要com.google.android.c2dm.send权限

三输入接收器

@Override

public void onReceive(Context context, Intent intent) {

    ComponentName comp = new ComponentName(context.getPackageName(),
        GcmMessageHandler.class.getName());

    startWakefulService(context, (intent.setComponent(comp)));

    setResultCode(Activity.RESULT_OK);

}
@Override

protected void onHandleIntent(Intent intent) {

    handler.post(new Runnable() {


        @Override

        public void run() {

            NotificationManager manager = (NotificationManager) getApplicationContext()
                    .getSystemService(Context.NOTIFICATION_SERVICE);

            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                    getApplicationContext());

            mBuilder.setSmallIcon(R.drawable.ic_launcher);

            mBuilder.setContentTitle("GCM Received");

            mBuilder.setContentText("GCM Message");

            manager.notify(1, mBuilder.build());


        }

    });


    Log.i("app", "Received ");

    GcmBroadcastReceiver.completeWakefulIntent(intent);

}

4-mainactivity-注册并获取clint ID,从log cat我复制了该ID。

5-我从浏览器向https://android.googleapis.com/gcm/send发出post请求,并带有授权、content-type和registration_id。

它会收到成功消息。
但我的设备没有显示通知。

共有1个答案

钱京
2023-03-14

对不起大家,

其实我的程序是正确的。我想是我的电话出了问题。(我也无法接收来自Facebook messenger的消息)

但今天早上我很惊讶,我收到了我的测试应用程序(我两天前发送的消息),Facebook等所有的消息。

谢谢大家。

 类似资料:
  • 我尝试了以下各种组合: 在ap有效载荷中传递了一个空警报 一个空的声音通过ap有效载荷 content_available:真 内容可用: 1 优先级设置为高。我的目标功能在后台模式中启用了后台抓取和远程通知。 这是我的有效载荷的样子: 我一打开应用程序,通知就会进来,但不是在后台。 看起来是这样的: [AnyHasable("body"): NTCIP示例单元:现在显示WALNUT TREE(T

  • 我的客户机/服务器上的推送通知设备注册管理有一个小问题。 同样,这里的问题是,我有两个或更多的注册ID都可以工作(如果我旧的一个在尝试从服务器发布消息时不工作,这不会有问题,因为我可以简单地清理它)。

  • GCM

    我一直在关注GoogleGCM的推送通知教程。除了屏幕上显示的通知外,其他一切似乎都正常工作。在xcode输出上,它显示已发送的信息。请给我一些帮助,我已经包括了php和swift.app Appdelegate.swift php 以下是我的输出结果:php:{“多播_id”:81418xxxxxx136054,“成功”:1,“失败”:0,“规范_id”:0,“结果”:[{“消息_id”:“0:

  • GCM

    GCM(Google Cloud Messaging) 是帮助开发者从服务器发送数据到 Android 应用的服务。GCM 提供一个简单轻量级的机制,服务器可以使用 GCM 来告诉移动应用直接连接服务器,直接更新应用或者用户数据。 GCM 包括简单的示例代码,通过 Gradle 配置获取 Google Play Services 库: dependencies {  compile "com.go

  • 我正在尝试将GCM用于IOS和Android客户端。当应用程序位于前台时,它似乎可以与IOS配合使用,但是,当应用程序位于后台时,通知中心不会收到消息,并且不会调用带有completionHandler的DidReceiveEmotentification。 我发现一个问题是从GCM到APN的消息格式错误。也就是说,它看起来就是这样: {“aps”:{“内容可用”:1},“数据id”:345} 顺

  • 我实现了一个简单的Java实用程序类,使用aes/gcm/nopadding进行加密和解密。我使用这段代码: IV总是一个12字节数组,key是32字节数组,SecureRandom使用种子生成。我知道在不同的OS上SecureRandom是不同的,但是加密和解密是在同一个OS上执行的,所以应该没有问题。 是不是很线性,对吧?它在Windows上工作得很好,加密和破译返回相同的文本。然而,在Doc