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