移动设备FMX的唯一ID

问题描述 投票:0回答:1

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

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

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

iOS 11:DeviceCheck API

DeviceCheck API - iOS 设备的唯一标识符

firemonkey c++builder
1个回答
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
}

希望对您有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.