【问题标题】:How to identify if device token is for android or iOS?如何识别设备令牌是用于 android 还是 iOS?
【发布时间】:2013-12-11 08:23:48
【问题描述】:

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

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

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

【问题讨论】:

  • 15 位表示 android 32 位表示 ios
  • 15位IMEI应该是安卓
  • 我认为这个 294913EC-6100-42E8-8C2D-E9F68F286ADE 用于 iphone
  • @user3035658 有任何答案对您有用吗?你的问题解决了吗?
  • @user3035658 你的首选答案是什么?

标签: android ios iphone devicetoken


【解决方案1】:

我建议您将附加信息与令牌一起发送到服务器。例如,有关注册令牌的设备类型的信息,即 Android 或 iOS。一个合适的解决方案是设置一个 REST 服务来注册您的令牌。如果您实施此解决方案,您将在未来对 Android/iOS 令牌长度进行更改。要存储的其他有用信息是用户 ID 或类似信息。

我假设您确实在谈论存储令牌的自己的数据库。

【讨论】:

    【解决方案2】:

    Iphone 设备令牌

    设备令牌为 32 字节二进制形式,表示 iphone 为 32 位,android 为 15 位

    【讨论】:

    • 官方文档的链接说明这个神奇的数字会很棒!
    【解决方案3】:

    您发布的第一个哈希是设备的 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

    【讨论】:

    • 不允许在 iOS 设备上使用 UDID。该申请将不会被 Apple 批准。原始问题也谈到了设备令牌。这不能与 UDID 混淆。
    【解决方案4】:

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

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

    Google Cloud Messaging

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

    【讨论】:

    • 不回答原来的问题。
    【解决方案5】:

    获取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;
    }
    

    【讨论】:

    • 这没有回答问题。这个问题与唯一标识符无关。它与识别 Android 和 iOS 令牌之间的区别有关。
    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    相关资源
    最近更新 更多