我用Cordova 3.0制作了一个Android应用程序Visual Studio 2013;在此应用中,我已使用此Push Notification插件与Google云消息传递服务。
注册应用程序工作正常,因为我从GCM获得了RegID,并且我的Web服务器中的注册也正常工作,但是,当我向设备发送任何通知时我遇到了问题:应用程序在收到Push时崩溃,而且没有任何表现。
我没有登录,因为应用程序在Cordova上,而Visual Studio无法调试此应用程序类型。
请帮我解决这个问题。
提前谢谢你。来自墨西哥的问候。
答案 0 :(得分:0)
嗯,确实,经过大量的研究,我终于可以在VS中调试我的应用程序了(启动adb.exe时我遇到了问题)。在日志中,我可以看到我的代码在创建Receiver时出现了错误,这就是错误:Unable to instantiate receiver com.myapp.GcmBroadcastReceiver
我查看了这个,发现我的AndroidManifest.xml中可能存在错误;然后我按照说明完全像Cordova的文档,然后......这个工作!
这是Android Manifest权限和更多(Here is the Docs):
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="$PACKAGE_NAME.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="$PACKAGE_NAME.permission.C2D_MESSAGE" />
<activity android:name="com.plugin.gcm.PushHandlerActivity"/>
<receiver android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver" 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="$PACKAGE_NAME" />
</intent-filter>
</receiver>
<service android:name="com.plugin.gcm.GCMIntentService" />
谢谢大家