7

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

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

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

4

5 回答 5

7

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

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

于 2013-11-26T10:00:13.393 回答
2

iPhone 设备令牌

设备令牌是 32 字节的二进制形式,对于 iphone 表示 32 位,对于 android 表示 15 位

于 2013-11-26T09:28:07.943 回答
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

于 2013-11-26T09:34:43.230 回答
-1

为此,您需要实施 GCM。

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

谷歌云消息

       String rid=GCMRegistrar.getRegistrationId(getApplicationContext());
于 2013-11-26T09:54:07.433 回答
-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;
}
于 2014-09-24T04:18:23.720 回答