1

GCM のすべての機能を実装しましたが、すべてが完全に機能します。アプリを起動するregIdと、すべてが正常に表示されます。しかし、時々、GCMIntent サービスが着信メッセージの受信を停止しているように見えます。GCM サービスに問題があるかどうか、および通知がデバイスに送信されたかどうかを確認する方法があるかどうかを知りたいです。以下は、登録するクライアント側のコードと、GCMIntent サービスです。

GCMRegistrar.checkDevice(this);
        GCMRegistrar.checkManifest(this);
        if(GCMRegistrar.isRegistered(this))
        {
            final String regId = GCMRegistrar.getRegistrationId(this);//app_preferences.getString(Constants.KEY_DEVICE_TOKEN, "");;
            if(!regId.equals(""))
            {
                mRegIds= regId;
                //sendIdToServer(regId);
                Log.i("DEVICE TOKEN", regId);
                is_gcm_registered = true;
            } 
        }

        else
        {
            GCMRegistrar.register(this, Constants.SENDER_ID);
            is_gcm_registered = false;
        }

GCM インテント サービス:

@Override
protected void onMessage(Context context, Intent intent) {
    Log.e("GOT INCOMING MESSAGE","HI");
    // My implementation
}

問題は、すぐに機能する場合と、通知を受け取るまでに最大 1 ~ 2 分かかる場合があることです。これは正常ですか?

編集: GCM Throttling http://developer.android.com/google/gcm/adv.html#throttling を読んでいて、メッセージが同じデバイスに一括で送信されると、アプリケーションがトークンを使い果たすと書かれています。GCM は Instant Messaging アプリケーションを実装する最良の方法ではないということですか?

4

1 に答える 1

0

はい、遅延は正常です-特に電話が数分間スリープ状態になった場合. 電話を積極的に使用している場合、メッセージはすぐに届く傾向があることに気付くでしょう。

あまり心配しないでください。メッセージはいずれ届きます。

于 2012-12-24T09:13:46.460 に答える