如何在数据库中注册Registration_Id?

Posted

技术标签:

【中文标题】如何在数据库中注册Registration_Id?【英文标题】:How to register Registration_Id in database? 【发布时间】:2016-04-20 05:39:08 【问题描述】:

我正在尝试将 GCM 用于 android。经过 developer.google 提供的一些步骤后,我在 toast 中获得了注册 ID,现在我想将其存储在数据库中。如何在此处更改以将其存储在数据库中。我需要为此更新更改哪些步骤???

代码

 mRegistrationBroadcastReceiver = new BroadcastReceiver() 
        @Override
        public void onReceive(Context context, Intent intent) 

            // checking for type intent filter
            if (intent.getAction().equals(config.REGISTRATION_COMPLETE)) 
                // gcm successfully registered
                // now subscribe to `global` topic to receive app wide notifications
                String token = intent.getStringExtra("token");

                Toast.makeText(getApplicationContext(), "GCM registration token: " + token, Toast.LENGTH_LONG).show();

             else if (intent.getAction().equals(config.SENT_TOKEN_TO_SERVER)) 
                // gcm registration id is stored in our server's mysql

                Toast.makeText(getApplicationContext(), "GCM registration token is stored in server!", Toast.LENGTH_LONG).show();

             else if (intent.getAction().equals(config.PUSH_NOTIFICATION)) 
                // new push notification is received

                Toast.makeText(getApplicationContext(), "Push notification is received!", Toast.LENGTH_LONG).show();
            
        
    ;

【问题讨论】:

您可以使用 SharedPreference 来存储您的令牌。由于令牌只是一个变量,因此您可以将其保存在 sharedprefences 中,而不是保存在数据库中。 【参考方案1】:

您可以将 GCM 令牌存储在 SharedPreferences 本身中。

这是你收到令牌后可以添加的一小段代码:

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);

SharedPreferences.Editor e = sharedPreferences.edit();
            e.putString("GCMTOKEN", token);
            e.commit();

要获得令牌,您可以使用它,

String token = sharedPreferences.getString("GCMTOKEN", null);

【讨论】:

其实我想要做的是,当它被值更新时,我想从数据库中获得通知。我有不同的客户端系统,对应的系统我必须发送不同的通知。【参考方案2】:

我建议您将令牌作为键值对保留在 SharedPreference 中。您将能够轻松地检索和保存/更新您的注册 ID,而不是在 mySQL 中创建记录。

在这个问题的最佳答案中有一个实现。看看吧。

How to get RegistrationID using GCM in android

【讨论】:

【参考方案3】:

您可以按照这个示例了解如何处理推送令牌注册和刷新令牌,这是一个重要的部分

https://github.com/ChamariaUmang/MoEngageDemo

【讨论】:

以上是关于如何在数据库中注册Registration_Id?的主要内容,如果未能解决你的问题,请参考以下文章

当针对多个 registration_id 时,FCM 返回单个注册 ID 的响应

C# GCM 未注册

Android C2DM 注册无效

使用无效注册 ID 时 GCM 返回 BAD 请求

Android GCM注册ID变更

如何获取 FCM-Django 推送通知的 registration_id (flutter app)