java - regId 始终为空

标签 java android android-c2dm

我目前正在我的应用程序中实现 GCM。我使用了教程here作为起点。

问题是我的 regId 始终为 null:

GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);

if (regId.equals(""))
{
    GCMRegistrar.register(this, "627xxxx78");
}
else
{
    if (GCMRegistrar.isRegisteredOnServer(this))
    {
        Log.i(TAG, "Already registered regId : " + regId );
    }
    else
    {
        final Context context = this;

        mRegisterTask = new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... params) {
                boolean registered =
                        ServerUtilities.register(context, regId);

                if (!registered)
                {
                    GCMRegistrar.unregister(context);
                }
                return null;
            }

            @Override
            protected void onPostExecute(Void result) {
                mRegisterTask = null;
            }
        };

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

在上面的代码中,ServerUtilities.register 从未被调用,因为 GCMRegistrar.getRegistrationId(this);始终返回空字符串。

有什么想法吗?

最佳答案

确保您的模拟器或设备已使用 Google 帐户登录。我遇到了同样的问题。我只是登录了设备的谷歌帐户,哈哈,我得到了 regId。

关于java - regId 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286356/

相关文章:

java - 如何使 JSONObject toString 转义 unicode 字符?

android - 如何确认android中的应用内购买?

android - 使用 4.0.4 android 版本或 3.2 的设备运行 GCM 通知项目有什么区别吗?

android - 使用 c2dm 一次发送多个推送

android - Kindle Fire 的推送通知/C2DM?

java - 集成测试期间对象中的 ArrayLIst 未更新

java - 为什么 JOptionPane 不接受这个字符串?

java - LWJGL/OpenGL 顶点缓冲区对象

android - 使用 fragment 时 getContext() 和 requireContext() 的区别

android - 为什么 Android SDK 安装不适用于 Eclipse 存储库下载,但适用于手动 Eclipse 3.6.2 下载?