2013-09-26 65 views
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(); 
} 

} 
+0

清單似乎是正確的(假設你的應用程序包是'berghegger.newsreader')。你確定接收器沒有被觸發嗎?你嘗試調試應用程序並在'onReceive'中放置斷點嗎? – Eran

+0

berghegger.newsreader是我的應用程序的包。我所做的只是一個簡單的Log.d(「MobilePushReceiver」,「onReceive()」);我會用斷點來嘗試它。 – Robert

+0

好吧,我試過了,它沒有達到onReceive()。我還在意圖過濾器中註冊了「android.bluetooth.adapter.action.STATE_CHANGED」動作,以測試broadcastReceiver是否工作。無論何時打開或關閉bluetoth,都會觸發onReceive方法。此外,我正在開發Android 2.3.6。 - 我希望這不是問題。 – Robert

回答

0

今天我嘗試了應用與Android 4.3和一切工作正常。通知到達時應該如此。所以這不是一個編程問題。我想到了我使用的依賴關係:

  • 行動酒吧 - 夏洛克4.4 +這是Android的支持庫(V4)的自己的版本
  • 的谷歌播放 - 服務 - 庫(修訂版12 )

會不會有問題?