0
我編寫了一個服務器應用程序,它應該通過「Google Cloud Messagin Service」(GCM)向註冊設備發送通知。到目前爲止,在服務器端一切正常。這是從谷歌的響應消息:Google-Cloud-Messaging-Service的BroadcastReceiver未被觸發
{"multicast_id":8327537504427777382,
"success":1,
"failure":0,
"canonical_ids":0,
"results":[
{"message_id":"0:1380212213392874%40dd3702f9fd7ecd"
}
]
}
我的問題是,該設備永遠不會收到此消息。 我已經仔細檢查了所有的值,尤其是gcmId和我的google api中的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();
}
}
清單似乎是正確的(假設你的應用程序包是'berghegger.newsreader')。你確定接收器沒有被觸發嗎?你嘗試調試應用程序並在'onReceive'中放置斷點嗎? – Eran
berghegger.newsreader是我的應用程序的包。我所做的只是一個簡單的Log.d(「MobilePushReceiver」,「onReceive()」);我會用斷點來嘗試它。 – Robert
好吧,我試過了,它沒有達到onReceive()。我還在意圖過濾器中註冊了「android.bluetooth.adapter.action.STATE_CHANGED」動作,以測試broadcastReceiver是否工作。無論何時打開或關閉bluetoth,都會觸發onReceive方法。此外,我正在開發Android 2.3.6。 - 我希望這不是問題。 – Robert