Google云消息传递:可以发送消息,但无法接收

时间:2015-09-01 04:20:43

标签: android google-cloud-messaging

我在Android应用中使用Google Cloud Messaging时遇到了麻烦,但我遇到了困难。我已经成功地让我的应用程序将其注册令牌与我的应用服务器同步,而这部分似乎与documentation描述它的方式有关。据我所知,我需要在我的应用程序中扩展GcmListenerService的服务,我必须覆盖onMessageReceived方法来处理消息。这是我对该类的实现,我基本上从example repo逐字复制:

public class GCMListenerService 
                    extends com.google.android.gms.gcm.GcmListenerService {

    @Override
    public void onMessageReceived(String from, Bundle data) {

        String message = data.getString("message");
        Log.d("response", message);
    }
}

我也相应地更新了我的清单,以便考虑这项新服务:

    <receiver android:name="com.google.android.gms.gcm.GcmReceiver"
        android:exported="true"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="xx.xx.xx.gcm" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        </intent-filter>
    </receiver>
    <service android:name="xx.xx.xx.GCMListenerService" android:exported="false">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
        </intent-filter>
    </service>

尽管如此,onMessageReceived方法永远不会执行。为了测试它,我一直在以https://gcm-http.googleapis.com/gcm/send的形式发送一个JSON对象形式的HTTP帖子,其中&#34;到&#34; field设置为我的InstanceIdListener类创建的标记。成功发布后,我收到类似以下内容的消息:

Response:     
{"multicast_id":7148018997883491563,
"success":1,"failure":0,"canonical_ids":0,
"results":[{"message_id":"long string that never changes"}]}

我的Android设备已连接到互联网,我确信这是因为我有一个基本的登录服务器,可以通过网络正确验证登录凭据,这可以正常工作。

我试过调用startService(),尽管事实上我在上面链接的那个repo中的示例应用程序似乎永远不会。无论我是否这样做,结果仍然是我发送消息后的沉默。请有人帮帮我吗?

0 个答案:

没有答案