【问题标题】:Is there a GCM registrationId pattern?是否有 GCM registrationId 模式?
【发布时间】:2012-09-13 09:50:37
【问题描述】:
/**
 * @author Sebastien Lorber <i>(lorber.sebastien@gmail.com)</i>
 */
public enum EnumDeviceType {

    ANDROID {
        @Override
        public boolean validateDeviceIdentifier(String deviceIdentifier) {
            Preconditions.checkArgument( !Strings.isNullOrEmpty(deviceIdentifier) );
            return ANDROID_REGISTRATION_ID_PATTERN.matcher(deviceIdentifier).matches();
        }
    },
    IOS {
        @Override
        public boolean validateDeviceIdentifier(String deviceIdentifier) {
            Preconditions.checkArgument( !Strings.isNullOrEmpty(deviceIdentifier) );
            return IOS_DEVICE_TOKEN_PATTERN.matcher(deviceIdentifier).matches();
        }
    },
    ;

    // TODO how do we validate registration Ids
    public static final Pattern ANDROID_REGISTRATION_ID_PATTERN = Pattern.compile(".*");
    // IOS device token is a 64 HEX string
    public static final Pattern IOS_DEVICE_TOKEN_PATTERN = Pattern.compile("[a-fA-F0-9]{64,64}");


    public abstract boolean validateDeviceIdentifier(String deviceIdentifier);


    public boolean isIos() {
        return IOS.equals(this);
    }

    public boolean isAndroid() {
        return ANDROID.equals(this);
    }


}

是否有任何已知的 GCM registrationId 模式可以用来在应用程序上验证registrationId 具有正确的形状? 我只想知道它有哪些字符范围,例如最小和最大大小...或任何其他信息...

【问题讨论】:

    标签: java android android-c2dm google-cloud-messaging


    【解决方案1】:

    我没有看到任何关于 GCM 注册 ID 格式的官方信息,但我分析了我们的此类 ID 数据库并得出以下结论:

    • 在大多数情况下,registrationID 的长度等于 162 个符号,但可以是 119 个符号的变体,也可能是其他长度;
    • 它仅由以下字符组成:[0-9a-zA-Z\-\_]*
    • 每个 regID 都包含一个或两个“分隔符”:-(减号)或 _(下划线)

    【讨论】:

    • GCM3 返回 registrationId 和其他字符 ex。 ':'
    • 我的数据库中有两种长度。最多 162 个符号和一些 140 个符号。
    【解决方案2】:

    文档未指定任何模式,因此允许使用任何有效字符串。格式将来可能会改变;请不要针对 any 模式验证此输入,因为如果发生这种情况,这可能会导致您的应用中断。

    与“registration_id”字段一样,大小的上限是 cookie 的最大大小,即 4K(4096 字节)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多