移动设备FMX的唯一ID

时间:2018-11-16 02:08:18

标签: firemonkey c++builder

在C ++ Builder FMX应用中为移动设备(iOS和Android)创建唯一ID的好方法是什么?

就我而言,我只想让我的应用程序用户投票,但每个设备只能投票一次(即使他们删除该应用程序并重新安装该应用程序)。他们保持匿名,但只能投票不止一次。

我知道Apple推出了DeviceCheck for Swift,但我不知道如何在C ++中使用它。

iOS 11: The DeviceCheck API

DeviceCheck API - Unique Identifier for the iOS Devices

1 个答案:

答案 0 :(得分:0)

更新:此解决方案面向 Android 设备。我没有使用 iOS 设备的经验。

原始答案:可能为时已晚,但这是我使用 _di_JTelephonyManager

的解决方案
_di_JObject obj;
_di_JTelephonyManager tm;
UnicodeString id;

try {
    obj = SharedActivityContext()->getSystemService(TJContext::JavaClass>TELEPHONY_SERVICE);
    if (obj) {
        tm = TJTelephonyManager::Wrap(static_cast<_di_ILocalObject>(obj)->GetObjectID());
        if (tm) {
            //only if SIM Card is in device:
            //id = JStringToString(tm->getSubscriberId());

            //will get IMEI or MEID number
            id = JStringToString(TJSettings_Secure::JavaClass->getString
                (SharedActivity()->getContentResolver(),
                TJSettings_Secure::JavaClass->ANDROID_ID));
        }
    }
}
catch (Exception &e) {
    //catch exceptions
}

希望对你有帮助:)