0

これについて多くの質問があることは知っていますが、それらの質問から解決策を見つけることができませんでした.

GCM からのトークンで null を取得しています。多くの人がクラスを使用してこれを行っていますが、私は同じクラスのバックグラウンド スレッドでこれを行っています。regId に null を返します。

作成時

if (checkPlayServices()) {
        gcm = GoogleCloudMessaging.getInstance(this);
        regid = getRegistrationId(context);

        if (regid.isEmpty()) {
            Log.e(TAG, "registering in background");
            registerInBackground();
        } else {
            Log.e(TAG, "Notification Token : " + regid);
            user.setNotificationToken(regid);
        }
    } else {
        MyLog.i(TAG, "No valid Google Play Services APK found.");
    }

デバイスが以前に登録されていない場合は、RegisterInBackground()。

private void registerInBackground() {
    new AsyncTask<Void, Void, String>() {
        @Override
        protected String doInBackground(Void... params) {
            String msg = "";
            try {

                Log.e(TAG, "doing in background");
                if (gcm == null) {
                    gcm = GoogleCloudMessaging.getInstance(context);
                }

                if(gcm != null)
                {
                    Log.e(TAG, "GCM is not null");
                }
                regid = gcm.register(SENDER_ID);

                Log.e(TAG, "token id:" + regid);

                msg = "Device registered, registration ID=" + regid;

                storeRegistrationId(context, regid);
            } catch (IOException ex) {
                msg = "Error :" + ex.getMessage();
            }
            return msg;
        }

    }.execute(null, null, null);
}

regId に null を表示するバグをログに記録しようとしました。これで何が問題になる可能性がありますか?

4

1 に答える 1

0

私のアプリIDがどのように機能していなかったのか。Googleコンソールでアプリを再作成すると、プロジェクトで使用した新しいIDが生成され、機能し始めました。

于 2014-03-01T09:16:47.700 に答える