2

GCMRegistrar.register(context, Constants.GCM_SENDER_ID)从广播接收器(启动完成接收器)调用,但它抛出 ReceiverCallNotAllowedException 然后我从广播接收器启动了一个单独的线程,从我GCMRegistrar.register(context, Constants.GCM_SENDER_ID)再次调用的线程我得到了同样的异常。

然后我从广播接收器和我调用的意图服务启动了一个 IntentService

GCMRegistrar.register(context, Constants.GCM_SENDER_ID)

然后我在死线程上向处理程序发送消息,因为对于 android 2.3,它使用谷歌帐户,我认为它执行了一些异步任务。

现在有什么方法可以从广播接收器成功实现 GCMRegistrar.register(context, Constants.GCM_SENDER_ID)

4

2 回答 2

2

GCMRegistrar 已弃用。更好的选择是使用GoolgeCloudMessaging类。

要使用此注册,您可以致电

 String id = GoogleCloudMessaging.getInstance(context).register(senderId);
于 2013-06-25T10:46:39.973 回答
0

您可以按照 StinePike 的建议切换到使用新GoogleCloudMessaging类,但GCMRegistrar.register仍然有效。我想由于某种原因你不能从广播接收器中使用它,但你可以从你的主要活动中调用它(例如)。您需要从广播接收器调用它是否有特殊原因?

于 2013-06-25T14:19:30.937 回答