/**
* @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的形状是否正确? 我只想知道它有哪个范围的字符,例如最小和最大的例子......或任何其他信息......
答案 0 :(得分:14)
我没有看到任何有关GCM registrationId格式的官方信息,但我已经分析了这些ID的数据库,可以得出以下结论:
[0-9a-zA-Z\-\_]*
答案 1 :(得分:12)
文档未指定任何模式,因此允许使用任何有效字符串。格式可能在将来发生变化;请不要对任何模式验证此输入,因为这可能会导致您的应用在发生这种情况时中断。
与“registration_id”字段一样,大小的上限是cookie的最大大小,即4K(4096字节)。