【问题标题】:Flutter - Get Unique Device IDFlutter - 获取唯一的设备 ID
【发布时间】:2019-08-28 22:46:48
【问题描述】:

我正在使用基于令牌的系统制作应用程序。因此,用户可以购买代币并使用它们进行一些操作。 使用电子邮件和密码创建帐户后,每位用户免费获得 10 个令牌(作为试用版)。

我想通过每次获得一个新帐户来防止该用户再获得 10 个令牌,我想知道 Android 和 iOS 设备是否有类似唯一设备 ID 之类的东西?

我可以为此目的使用它吗? https://pub.dartlang.org/packages/device_id#-example-tab-

【问题讨论】:

标签: android ios flutter


【解决方案1】:

是的,这就是您需要的插件。如果你真的想

我想通过每次获取一个新帐户来防止该用户再获得 10 个令牌

您还必须检查是否有 root 手机(它可以更改 id)

你可以考虑使用这个GET IMEI

【讨论】:

  • 我认为Apple不再允许获取IMEI了。
  • 在 Android 上它将返回 IMEI,在 iOS 上它将返回设备 ID
  • 如果我们使用这个插件,那么应用程序会要求授予用户通常不会授予的电话访问权限。我有这个插件的经验。
【解决方案2】:

使用device_info_plus插件。

在你的 pubspec.yaml 文件中添加这个

dependencies:
  device_info_plus: any

创建一个方法:

Future<String?> _getId() async {
  var deviceInfo = DeviceInfoPlugin();
  if (Platform.isIOS) { // import 'dart:io'
    var iosDeviceInfo = await deviceInfo.iosInfo;
    return iosDeviceInfo.identifierForVendor; // Unique ID on iOS
  } else {
    var androidDeviceInfo = await deviceInfo.androidInfo;
    return androidDeviceInfo.androidId; // Unique ID on Android
  }
}

像这样使用它:

String? deviceId = await _getId();

_getId().then((id) {
  String? deviceId = id;
});

【讨论】:

  • 有时它被认为是空的,它被记录为“可以在恢复出厂设置时更改”。使用风险自负,并且可以在有根手机上轻松更改。
  • 没用。如果我重新安装应用程序,deviceId 会改变,
  • @NicholasJela 设备ID只能在手机重置后才能更改。
  • @CopsOnRoad 我的同一部手机已经有 2 个不同的设备 ID。虽然我的手机从未重置。
  • @NicholasJela 也许你应该在 Github 页面上归档(或搜索)问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
  • 2017-09-07
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
相关资源
最近更新 更多