问题
/**
* @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);
}
}
Is there any known pattern for the GCM registrationId i can use to validate on application that the registrationId has a correct shape? I would just like to know which range of chars it has, which is the minimum and maximum size for exemple... or any other information...
回答1:
The documentation doesn't specify any pattern, therefore any valid string is allowed. The format may change in the future; please do not validate this input against any pattern, as this may cause your app to break if this happens.
As with the "registration_id" field, the upper bound on size is the max size for a cookie, which is 4K (4096 bytes).
回答2:
I hasn't seen any official information about format of GCM registrationId, but I've analyzed our database of such IDs and can make following conclusions:
- in most cases length of a registrationID equals 162 symbols, but can be variations to 119 symbols, maybe other lengths too;
- it consists only from this chars:
[0-9a-zA-Z\-\_]*
- every regID contains one or both of "delimiters": - (minus) or _ (underline)
来源:https://stackoverflow.com/questions/12403628/is-there-a-gcm-registrationid-pattern