android - 智能手机设备的唯一设备标识符

标签 android ios windows-phone-7 blackberry uniqueidentifier

用例的业务背景是我们正在构建一个后端服务器( Multi-Tenancy ),它将为来自多个平台(iOS、Android、Windows phone 7、BlackBerry、j2me 手机)的应用程序提供服务。企业希望奖励首次安装合作应用程序的用户。因此,企业希望单独跟踪首次安装应用程序的用户和重新安装(删除和安装)用户。因此,我们希望合作的移动应用程序在安装后通过 Web 服务将唯一标识符(使用我们在此处确定的唯一标识符规范)发送到我们的后端服务器,如果是第一次安装,服务器将对其进行验证并返回奖励.

因此,理想情况下,我们只想在此处定义具有以下属性的唯一设备标识符规范。

  1. 它在该设备类别(例如所有 iOS 设备)下应该是唯一的。因此,恢复出厂设置等操作不应更改设备标识符。
  2. 欺骗标识符应该不是一件容易的事。例如。您可以在设备上使用软件工具并重新安装应用程序,应用程序发回的标识符会发生变化。
  3. 底层平台提供 API 来检索规范中提到的必要信息。也就是说,没有私有(private) API 等,因为应用程序将通过开放市场(应用程序商店等)部署。
  4. 由于解决方案是全局性的,因此规范应该是全局真实的。因此,应该尊重所有国家的法律。
  5. 请注意,该解决方案希望针对平台的所有设备;不仅是基于 SIM 卡的手机,甚至是基于非 SIM 卡的移动设备(ipod touch、ipad)。 [因此,非 SIM 卡移动设备上没有唯一的 IMEI 号码,但可以在这些设备上安装应用程序]

期待有创意的头脑来讨论这个问题。

感谢阅读本文。

最佳答案

你正在打一场失败的战斗“信任”设备给你一个一致的唯一 ID,任何越狱的 iOS 设备都允许你更改 UDID,我敢肯定 Android 就是这种情况(也可能是 Windows Phone) , MAC 地址是无用的,因为它们可以在软件中更改。

甚至像 IMEI 和 IMSI 这样的东西也可以伪造。 “最佳”解决方案是拥有一个登录服务器端,您(受信任方)可以在其中设置用户帐户的属性。

相信对方会为您提供一致或“非欺诈”的信息是灾难的根源,如果您像您所说的那样“放弃奖励”,那将是一场代价高昂的灾难。

修改您的业务案例。

关于android - 智能手机设备的唯一设备标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9544484/

相关文章:

ios - Mute Video + Transform Video 使用 AVAssetExportSession 的单一导出操作

ios - 当我重命名属性名称时,Xcode 重构不会重命名 setter 和 getter

silverlight - 为 Windows Phone 7 silverlight 中的控件创建平铺背景图像

c# - 是否可以在 Windows Phone 7 上读取用户文件?如果是,如何?

java - Android apk可以加载本地库

c# - 我应该在每次使用 FindViewById 后调用 Dispose()

ios - 无法从 url 获取响应

windows-phone-7 - 点击上下文菜单,而不是使用按钮控件点击并按住

java - 如何从 EditView 检查密码?

java - 仅信任由 Android 6 上的特定 CA 签名的证书