【问题标题】:Parse for Android: ParseInstallation.getCurrentInstallation().get(KEY_DEVICE_TOKEN) returns nullAndroid 解析:ParseInstallation.getCurrentInstallation().get(KEY_DEVICE_TOKEN) 返回 null
【发布时间】:2015-05-06 18:00:36
【问题描述】:

Parse for Android:尝试在 Parse 中获取设备令牌,但始终返回 null。这段代码大约在 6 个月前工作,但最近注意到了这个问题。稍后使用设备令牌订阅 Parse。它只是卡在 while 循环中。我使用的是 Parse 1.7.1 版本。即使我更新解析,这是否是获取设备令牌的正确方法?

private static final String KEY_DEVICE_TOKEN = "deviceToken";
boolean isTokenReady = false;
while (!isTokenReady) {
    String deviceToken = (String) ParseInstallation.getCurrentInstallation().get(KEY_DEVICE_TOKEN);
    if (!StringHelper.isNullOrEmpty(deviceToken)) {
        isTokenReady = true;
    } else {
        sleep(1000);
    }
}
ParsePush.subscribeInBackground("pushtoken_" + deviceToken);

【问题讨论】:

    标签: android parse-platform push-notification token


    【解决方案1】:

    如果你正在检索一个字符串,你可以使用它:

    ParseInstallation.getQuery().get(objectId).getString(KEY_DEVICE_TOKEN)
    

    如果需要从默认安装类中获取objectId:

    ParseInstallation.getCurrentInstallation().getObjectId();
    

    我使用的是 1.9.2 版。希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      Android parse sdk 有 11 次更新。我肯定会更新,因为有很多修复。

      此外,您不必阻塞线程来等待设备令牌。在尝试获取 deviceToken 之前是否忘记保存安装?

      像这样:

      ParseInstallation.getCurrentInstallation().save();
      String deviceToken = (String) ParseInstallation.getCurrentInstallation().get( "deviceToken" );
      

      最后,我不确定为什么要使用唯一的设备令牌作为推送渠道。您可以直接使用 deviceToken。所以我建议不要订阅任何频道并使用他们的 deviceTokens 向选定的设备推送通知。

      【讨论】:

        【解决方案3】:

        我也花了很多时间在这个问题上...... getInstallationId() 似乎有效。我使用 installationId 来查询安装,现在它可以正常工作了

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-07-24
          • 2013-03-29
          • 1970-01-01
          • 1970-01-01
          • 2016-02-12
          • 2021-09-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多