android - Flutter - 获取唯一的设备 ID

标签 android ios flutter

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

我想防止该用户每次都获得一个新帐户而获得另外 10 个 token ,我想知道是否有类似 Android 和 iOS 设备的唯一设备 ID 之类的东西?

我可以将其用于该目的吗? https://pub.dartlang.org/packages/device_id#-example-tab-

最佳答案

使用device_info_plus插件。

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

dependencies:
  device_info_plus: any

创建一个方法:

import 'dart:io';
import 'package:device_info_plus/device_info_plus.dart';
// ...

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

关于android - Flutter - 获取唯一的设备 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55562353/

相关文章:

Android:如何在进度条处于 Activity 状态时禁用控件

iOS 在后台处理

firebase - Flutter firestore:使用 'where'和DISTINCT文档字段查询文档

flutter - 如何在 flutter 中将自定义偏移量设置为 "FloatingActionButtonLocation"?

java - 使用简单 Facebook API 记录时出现异常(没有打开 session 时请求 session )

java - 单击标记时的警报对话框布局

Android PagerAdapter destroyItem(),使用fragments时缓存一段时间

ios - 为什么我的 NSTimer 会双倍递减我的计时器?

ios - 退出时如何关闭/重新启动我的应用程序?

Flutter - 如何创建左上角带有标签的卡片?