首页 > 解决方案 > Flutter - 获取唯一的设备 ID

问题描述

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

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

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

标签: androidiosflutter

解决方案


使用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;
});

推荐阅读