android - Flutter - 获取唯一的设备 ID
问题描述
我正在使用基于令牌的系统制作应用程序。因此,用户可以购买代币并使用它们进行一些操作。在使用电子邮件和密码创建帐户后,每位用户免费获得 10 个令牌(作为试用版)。
我想通过每次获得一个新帐户来防止该用户再获得 10 个令牌,我想知道 Android 和 iOS 设备是否有类似唯一设备 ID 之类的东西?
我可以为此目的使用它吗?https://pub.dartlang.org/packages/device_id#-example-tab-
解决方案
使用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;
});
推荐阅读
- url - 添加 url 参数以获得更多结果
- bash - 将 shell 或 bash 添加到 docker 映像(基于 Debian GNU/Linux 的 Distroless)
- r - 将 tbl 转换为 R 中多个数据集的数据帧
- kubernetes - 为什么明显格式错误的 yaml 是验证的?
- java - spring bean默认优先级
- python-3.x - 在 IDE、python 路径上工作时出现 Anaconda / Pip ModuleNotFound 错误?
- java - java中的构造函数类型不匹配
- elasticsearch - Kibana 发现选项卡中未显示数据
- reactjs - 无法在 Netlify 开发代理 (React) 中获取数据
- c++ - 为什么我可以使用默认的 <=> 而不是用户提供的调用 ==?