Android 未触发Google云消息服务的BroadcastReceiver

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" } ] } 我的问题是设备从未收到此消息。

我已经编写了一个服务器应用程序,它应该通过“谷歌云信息服务”(GCM)向注册设备发送通知。到目前为止,服务器端一切正常。这是google的响应消息:

{"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();
}

}