4

私が読んだように、関数 gcm.register() は非推奨です。代わりに InstanceID.getToken() を使用できます...

ここで説明したように使用します が、アプリを実行するたびに新しい RegID (インスタンス ID) を取得します。

ここで私が登録した方法:

        @Override
        protected String doInBackground(Object[] voids) {
            String msg = "";

            if (gcm == null) {
                gcm = GoogleCloudMessaging.getInstance(MyApp.getContext());
            }
            InstanceID instanceID = InstanceID.getInstance(context1);
            EntryActivity. regid = null;
            try {

                EntryActivity.regid = instanceID.getToken(ConstantsGCM.senderID_ProjectID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
                Log.d("REG---", "========================>>>- regid= " + EntryActivity.regid);

            } catch (IOException e) {
                e.printStackTrace();
            }

            if (EntryActivity.regid != null)
                try {
                    storeRegistrationId(context1, EntryActivity.regid);
                } catch (PackageManager.NameNotFoundException e) {
                    e.printStackTrace();
                }
            Log.d("REG---", "- " + msg + "regid= " + EntryActivity.regid);
            return msg;
        }

次に、「regid」をサーバーに送信してデータベースに保存しました。これまではすべて正常に機能していましたが、GCM(gcm.send(...);)を介してサーバーにメッセージを送信し、「from」を呼び出すとメッセージのフィールド(サーバー側)で別のregIDを取得し、アプリを再起動して送信するたびに、新しいregIDを取得します(regIdが変更されたインスタンスごとに)。

インスタンス ID を定数 RegID として使用する方法については、ドキュメントを読みましたが、その方法がわかりませんでした。

4

0 に答える 0