如何识别设备令牌是用于Android还是iOS?

时间:2013-11-26 09:23:12

标签: android ios iphone devicetoken

我在DB中存储Android和iOS设备令牌。以下是设备令牌保存在数据库中的几个示例。

  • 359092050465370
  • 654C4DB3-3F68-4969-8ED2-80EA16B46EB0
  • 294913EC-6100-42E8-8C2D-E9F68F286ADE

如何区分特定设备令牌是用于Android还是iOS设备?

5 个答案:

答案 0 :(得分:7)

我建议您将其他信息与令牌一起发送到服务器。例如,有关令牌从哪个设备类型注册的信息,即Android或iOS。一个合适的解决方案是设置一个用于注册令牌的REST服务。如果您实施此解决方案,您将来会证明未来Android / iOS令牌长度的变化。存储的其他有用信息是用户ID或类似信息。

我认为你确实在谈论你自己存储令牌的数据库。

答案 1 :(得分:2)

Iphone设备令牌

设备令牌是32字节二进制形式,对于iphone来说意味着32个,对于android来说意味着15个

答案 2 :(得分:0)

您发布的第一个哈希是该设备的IMEI,因此它出现在Android和iO上。 IMEI只包含数字!

在Android上,如果使用以下代码,将为您提供唯一ID: Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);看起来像那样:9774d56d682e549c,这是16个字符长。

在iOS设备上,您可以在iTunes或类似这样的网站上获取您的UDID:http://whatsmyudid.com/ 此UDID是32位数,看起来像这样:294913EC-6100-42E8-8C2D-E9F68F286ADE

根据您在邮件中发布的IMEI,我们可以获取您的手机信息,例如品牌,型号和许多其他内容。看看那个地址:http://www.imei.info/?imei=359092050465370

答案 3 :(得分:-1)

您需要实施GCM才能这样做。

请点击此链接了解详细说明。

Google Cloud Messaging

       String rid=GCMRegistrar.getRegistrationId(getApplicationContext());

答案 4 :(得分:-2)

获取 IMEI (国际移动设备标识符):

public String getIMEI(Activity activity) {
    TelephonyManager telephonyManager = (TelephonyManager) activity
            .getSystemService(Context.TELEPHONY_SERVICE);
    return telephonyManager.getDeviceId();
}

获取设备唯一ID

public String getDeviceUniqueID(Activity activity){
    String device_unique_id = Secure.getString(this.getContentResolver(),
            Secure.ANDROID_ID);
    return device_unique_id;
}