【问题标题】:Unique ID for mobile device FMX移动设备 FMX 的唯一 ID
【发布时间】:2019-04-19 04:56:04
【问题描述】:

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

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

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

iOS 11: The DeviceCheck API

DeviceCheck API - Unique Identifier for the iOS Devices

【问题讨论】:

  • 有什么解决办法吗?我可以在每台设备上启动应用程序时为其生成唯一编号,但这不会阻止卸载/重新安装问题。

标签: firemonkey c++builder


【解决方案1】:

更新:此解决方案针对 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
}

希望对你有帮助:)

【讨论】:

  • 我还找到了一个示例,展示了如何获取 iOS 设备的 ID。请检查此链接:link
猜你喜欢
  • 2012-03-13
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
相关资源
最近更新 更多