根据 Flurry 文档,
“新用户
新用户是刚刚开始使用您的应用程序的用户。用户由唯一的电话 ID(因平台而异)识别,以确保用户实际上是唯一的新用户,而不仅仅是重新安装。”
任何人都可以详细说明这"unique phone IDs (which vary by platform)"
部分吗?
谢谢。
伪唯一 ID,适用于所有 Android 设备。某些设备没有手机(例如平板电脑)或出于某种原因您不想包含 READ_PHONE_STATE 权限。您仍然可以阅读 ROM 版本、制造商名称、CPU 类型和其他硬件详细信息等详细信息,如果您想将 ID 用于序列密钥检查或其他一般用途,这将非常适合。以这种方式计算的 ID 不会是唯一的:可以找到具有相同 ID 的两个设备(基于相同的硬件和 ROM 映像),但在实际应用中的机会可以忽略不计。为此,您可以使用 Build 类:
String m_szDevIDShort = "35" + //we make this look like a valid IMEI
Build.BOARD.length()%10+ Build.BRAND.length()%10 +
Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +
Build.DISPLAY.length()%10 + Build.HOST.length()%10 +
Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +
Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +
Build.TAGS.length()%10 + Build.TYPE.length()%10 +
Build.USER.length()%10 ; //13 digits
大多数 Build 成员都是字符串,我们在这里所做的是获取它们的长度并通过模数转换它。我们有 13 个这样的数字,我们在前面添加两个 (35) 以具有与 IMEI 相同大小的 ID(15 位)。这里还有其他的可能性很好,看看这些字符串。
返回类似: 355715565309247。
不需要特别许可,使这种方法非常方便。
对于 Android,唯一 ID 可能是以下之一:
你真的不需要为它做任何事情。
关于flurry是如何做到的,我不完全确定,但我猜他们只是在获取一些特定于设备的信息并从中创建一个自己的“flurry-number”。
由于这些信息可能与平台不同(以 Apple 为例,您可以长时间使用 UDID),因此“可以非常依赖于平台”。