【发布时间】:2010-07-12 10:52:14
【问题描述】:
UID - 对于每台设备都是唯一的。 但是是否可以确定它属于哪个设备(我的意思是 iPhone 或 Android)?
iPhone 设备非常标准化 - 它们配备几乎相同的硬件,但几乎所有设备都配备了 Android(在某些情况下包括 iPhone)
【问题讨论】:
-
为什么需要这样做?我有 99.99% 的把握:1. 有更好的方法,2. 不可能。
UID - 对于每台设备都是唯一的。 但是是否可以确定它属于哪个设备(我的意思是 iPhone 或 Android)?
iPhone 设备非常标准化 - 它们配备几乎相同的硬件,但几乎所有设备都配备了 Android(在某些情况下包括 iPhone)
【问题讨论】:
这不是一个好主意。在平台上生成 UUID(例如 MAC 地址)时,使用底层硬件的某些功能是很常见的,但您无法保证。
我在一些移动数据收集应用程序中使用来自iPAQs 的设备 ID(一个 UUID)来跟踪数据是从哪里收集/上传的,虽然通常会找到相关批次的 iPAQ 会有类似的模式随着不同的模型发生根本性的变化,有时在相同的模型范围内没有明显的原因。
您可能会忽略 UUID 的空间有多么巨大。引用维基百科
换句话说,仅在接下来的 100 年每秒生成 10 亿个 UUID 之后,仅创建一个副本的概率约为 50%。如果地球上每个人都拥有 6 亿个 UUID,那么出现重复的概率约为 50%。
话虽如此,我确实听说过第二人生曾经遇到过生成重复 UUID 的问题(世界上的每个对象都由一个 UUID 标识),因为在他们用来生成它们的 Python 库,因此由于编码假设,碰撞风险可能比理论值高一点。
【讨论】:
我认为您不应该在其中放置任何任何假设-也许现在可以区分它们,但下个月可能不行。把它当作一个黑匣子。
我不确定是否可以保证来自一个平台的 UID 也不会出现在另一个平台上,但我认为这不会成为问题(“极不可能甚至根本不可能”) .
如果您真的需要区分,请使用一些自定义扩展,即在它们前面加上某种设备类型字符串。
【讨论】: