我是Android的新手,并尝试使用Google Cloud Messaging实施一些应用程序。我最初设置了一个应用程序,现在已将我的应用程序拆分为两个(服务器和客户端)。
我的GCM意图正在运行,但是当我拆分我的应用程序时,我将包分开了。我的旧应用程序是<base.package>
,现在这两个应用程序是<base.package>.client
和<base.package>.server
。
现在,在我的客户端应用程序(接收广播)上,在我的日志文件中,我看到:
11-24 11:24:47.978: W/GCM/DMM(14909): broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=<base.package> (has extras) }
11-24 11:24:47.978: W/GCM/DMM(14909): Receiver package not found, unregister application <base.package> sender <project.id>
我的清单如下:
<!-- Needed for the GCM messaging service -->
<permission
android:name="<base.package>.client.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="<base.package>.client.permission.C2D_MESSAGE" />
<!-- Needed to receive GCM broadcasts -->
<receiver
android:name="com.google.android.gcm.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="<base.package>.client" />
</intent-filter>
</receiver>
<service android:name=".GCMIntentService" >
</service>
所以看起来发生了什么,我的<base.package>
旧应用程序是不允许我的<base.package>.client
新应用程序注册?这是在Google服务器端还是在我的Eclipse项目中?我该如何清除它?
我有一种感觉,我可以创建一个新的Google控制台项目项目,并从头开始使用新的项目ID,但我想我不会那样学习: - )
答案 0 :(得分:0)
顺便说一下,你可以从头开始,但这不是必要的,好像只是用.client包名创建一个新的控制台项目,并使用该项目ID,这将完成工作......
答案 1 :(得分:0)
您在问题中仅包含部分相关清单声明。在清单顶部附近,您应该拥有包含<permission>
的{{1}}和<uses-permission>
声明。您应该将它们更改为<base.package>.permission
。