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

使GCM注册在少于4台的真实设备上工作的最简单方法

周锐
2023-03-14

我的应用程序GCM(使用google play服务)注册在运行Android4的真实设备三星上运行良好,但在运行Android2.3的Galaxy GT-5360上不起作用。6.

关于如何使GCM注册在真实设备上工作,我搜索了半天之后,没有得到任何有用的结果。

但我的搜索并没有白费,我找到的这些解决方案并没有解决我的问题。

1.第一种解决办法:

链接:Android 2.2上不提供GCM服务

我也经历了同样的问题。GCM在运行Android4.04的平板电脑上运行良好,但在运行Android2.3的智能手机上总是收到SERVICE_NOT_AVAILABLE。

我发现下面的工作区没有使用(据我所知)任何弃用的类。将操作"com.google.android.c2dm.intent.注册"添加到清单中的GCMBroadcastRecector。这将使您能够在GCMBroadcastRecector上接收registration_id。

<receiver
   android:name="YOUR_PACKAGE_NAME.GCMBroadcastReceiver"
   android:permission="com.google.android.c2dm.permission.SEND" >
      <intent-filter>
         <action android:name="com.google.android.c2dm.intent.RECEIVE" />
         <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

         <category android:name="YOUR_PACKAGE_NAME" />
      </intent-filter>
</receiver>

之后,您的GCMBroadcastRecector能够接收registration_id:

public void onReceive(Context context, Intent intent) {
   Log.e("GCMTEST", "onReceive method invoked ??????");
   String regId = intent.getExtras().getString("registration_id");
   if(regId != null && !regId.equals("")) {
      /* Do what ever you want with the regId eg. send it to your server */
   }
}

虽然我仍然得到一个SERVICE_NOT_AVAILABLE错误,我可以处理registration_id在我的GCMBroadcastRecector,我能够发送消息到我的智能手机。很奇怪,但对我有用。

我尝试了这个解决方案,我在接收器中添加了注册操作,并在GCMBroadcastRecector上添加了onRecture方法。我运行它,但没有什么想工作!!!没有logCat消息...

2.第二个解决方案:

检查互联网连接,检查设备上的谷歌帐户...

请保存我的一天,并给我你的经验,使GCM注册工作的Android2。x、 x

提前感谢:)

共有1个答案

徐知
2023-03-14

最后,我找到了在Android 2.2及更高版本上使用Android推送通知的最简单方法。

方法如下链接中的步骤:

https://developer.android.com/google/gcm/helper.html

虽然它已经被弃用了,但我觉得它已经足够了,它正在工作,这就是我想要的。

 类似资料:
  • 我尝试使用GCM发送APN。设备注册OK,GCM和IOS设备令牌被接收。当我尝试发送有效载荷没有"通知"节点: 一切正常。 但是我想处理应用程序在后台时的通知 根据文档,我将有效负载修改为: 第一次尝试: 但没有收到通知。 第二次尝试: 然后应用程序不会收到任何通知,即使我删除了通知节点。所以我必须移除它,重新安装,接收新的代币。 第二期: 我试图检查APN使用NWPusher,但得到错误:无效令

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

  • 我在一个数据库表中有一个GCM注册用户列表及其相应的注册ID,我实际上想在用户从表中删除时注销该用户。我在Stackoverflow中发现了很多示例,但大多数示例都基于旧的GCMRegistarAPI,现在已经不推荐使用了。我正在使用GoogleCloudMessaging API,并通过以下方法注册用户: 我有一个管理员应用程序,它充当第三方应用程序服务器,因为它向所有用户推送通知。我想注销一个

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

  • 我已经从中看到了“GCM体系结构概述”http://developer.android.com/guide/google/gcm/gcm.html.文档说,当android应用程序注册GCM时,会调用onRegistered(上下文c,字符串regId),其中包含regId,然后用户将该regId发送到其服务器。该文件称“谷歌可能会定期刷新注册ID”。我的问题是,我怎么知道谷歌已经为用户刷新了re

  • 这个小部件在模拟器4.1.2上工作得很好,当安装在真正的设备上时,它甚至不会显示在小部件列表上,就像安装了一样,但我不能让它正常工作。 下面是manifest.xml 和小部件提供程序