我编写了一个服务器应用程序,它应该通过“谷歌云消息服务”(GCM)向注册设备发送通知。到目前为止,服务器端一切正常。这是来自谷歌的响应消息:
{"multicast_id":8327537504427777382,
"success":1,
"failure":0,
"canonical_ids":0,
"results":[
{"message_id":"0:1380212213392874%40dd3702f9fd7ecd"
}
]
}
我的问题是设备永远不会收到此消息。我已经仔细检查了所有值,尤其是我的 google api 中的 gcmId 和 api-key。他们似乎没事。
我不明白为什么我的 BroadcastReceiver 永远不会被触发。会不会是我在 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>
此致
罗伯特
广播接收器:
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();
}
}