我的应用使用设备的电话号码来获取有关用户联系人的有意义的信息。
它可以在 Android 和 iOS 上运行。
在电话上,我只是使用 10 位数(无国家代码)电话号码作为用户的唯一标识符。这甚至适用于 Android 模拟器(它有自己的失效号码),尽管 iPhone 模拟器返回一个空白号码(我可以很容易地忽略这种情况)。
现在我开始在非手机设备上进行测试。虽然他们仍然有可用的联系人,但他们不再有电话号码。一种简单的方法是在 iOS 中使用 UDID 以及在 Android 中使用的任何等价物。但是,我有 2 个问题需要解决:
UDID 不统一。我需要一个 10 个字符的 key 。有没有办法将 n 个字符散列成 10 个字符,避免冲突? (我可以忍受非常低概率的碰撞)
更大的问题:我刚刚读到 Apple is blocking UDID access as of iOS 5 .如果需要维护一个 10 个字符的 key ,我应该使用什么来代替它?
感谢您的宝贵时间。
Best Answer-推荐答案 strong>
您可以使用 MAC 地址 How can I programmatically get the MAC address of an iphone .有一个解决方案可以根据 MAC 地址和 github 上的应用程序包标识符创建 UUID https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5 .
我认为 iphone 上的 MAC 地址就足够了。 Mac 地址有 12 个字符,因此您只需决定如何将其压缩为 10 个字符。
关于android - 获取非手机 iDevices 和 Android 平板电脑的唯一 ID,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/7235941/
|