0

我编写了一个服务器应用程序,它应该通过“谷歌云消息服务”(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();
}

}
4

1 回答 1

0

今天我用 Android 4.3 试用了该应用程序,一切正常。通知按应有的方式到达。所以这不是编程问题。我想到了我正在使用的依赖项:

  • Action-Bar-Sherlock 4.4 + 它自己的 Android-Support-Library (v4) 版本
  • Google-Play-Services-Library(修订版 12)

会不会有问题?

于 2013-09-28T16:32:19.723 回答