设备未获取推送通知,而模拟器中的相同代码正在使用GCM获取推送通知

时间:2012-09-14 13:22:49

标签: android android-emulator google-cloud-messaging

我准备的应用程序正在使用GCM从服务器获取推送通知。

模拟器正在获取推送通知,但是当我在设备上安装相同的应用程序时,我的设备没有收到推送通知。

我已向服务器提供了SENDER_ID和API密钥。注册ID和设备ID通过代码发送。

我使用以下代码获取设备ID:

TelephonyManager telephonyManager1 =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
device_id = telephonyManager1.getDeviceId();

自从过去2天以来我一直坚持这个问题,但到目前为止还无法解决。任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:1)

您是否使用GCM注册了设备?要获得注册ID,您必须执行以下代码:

在onCreate()方法中,添加以下代码:

GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
  GCMRegistrar.register(this, SENDER_ID);
} else {
  Log.v(TAG, "Already registered");
}

在这里,您将获得必须将其发送到服务器的regId,以便服务器可以向具有上述regId的设备发送推送通知。

如需更多帮助,请参阅here

<强> EDITED

您也可以参考此链接HERE

答案 1 :(得分:0)

问题已解决,因为问题来自服务器端。

在GCM中,我们不需要提供设备ID。但只需要发件人ID,注册ID和api密钥。