Android 未触发Google云消息服务的BroadcastReceiver
我已经编写了一个服务器应用程序,它应该通过“谷歌云信息服务”(GCM)向注册设备发送通知。到目前为止,服务器端一切正常。这是google的响应消息:Android 未触发Google云消息服务的BroadcastReceiver,android,google-cloud-messaging,Android,Google Cloud Messaging,我已经编写了一个服务器应用程序,它应该通过“谷歌云信息服务”(GCM)向注册设备发送通知。到目前为止,服务器端一切正常。这是google的响应消息: {"multicast_id":8327537504427777382, "success":1, "failure":0, "canonical_ids":0, "results":[ {"message_id":"0:1380212213392874%40dd3702f9fd7ecd" } ] } 我的问题是设备从未收到此消息。
{"multicast_id":8327537504427777382,
"success":1,
"failure":0,
"canonical_ids":0,
"results":[
{"message_id":"0:1380212213392874%40dd3702f9fd7ecd"
}
]
}
我的问题是设备从未收到此消息。
我已经仔细检查了所有的值,特别是我的googleapi中的gcmId和api键。
他们似乎没事
我不明白为什么我的广播接收器从未被触发。可能是我在AndroidManifest.xml中配置错误了吗
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission android:name="berghegger.newsreader.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="berghegger.newsreader.permission.C2D_Message" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<receiver
android:name="berghegger.newsreader.gcm.MobilePushReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE">
<category android:name="berghegger.newsreader" />
</action>
</intent-filter>
</receiver>
今天我试用了安卓4.3的应用程序,一切正常。通知如期到达。因此,这不是一个编程问题。我考虑了我正在使用的依赖项:
- Action Bar Sherlock 4.4+它自己版本的Android支持库(v4)
- Google Play服务库(第12版)
可能有问题吗?清单似乎正确(假设你的应用程序包是
berghegger.newsreader
)。你确定没有触发接收器吗?您是否尝试调试应用程序并在接收时设置断点?berghegger.newsreader是我的应用程序包。我所做的只是一个简单的Log.d(“MobilePushReceiver”,“onReceive()”);我将尝试使用断点。好的,我已经尝试过了,但它没有到达onReceive()。我还在意向过滤器中注册了“android.bluetooth.adapter.action.STATE_CHANGED”-操作,以测试广播接收器是否工作。每当我打开或关闭bluetoth时,就会触发onReceive方法。我也在用安卓2.3.6开发我希望这不是问题所在。你能发布你的广播接收器吗?我在我的问题中添加了广播接收器
public class MobilePushReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.d("MobilePushReceiver", "onReceive()");
Toast.makeText(context, "received a push!", Toast.LENGTH_SHORT).show();
}
}