flutter如何获取设备id的device_info_plus插件使用
在flutter中使用了device_info_plus插件,但不知道如何正确获取设备ID,有没有具体的代码示例?另外,不同平台获取到的设备ID格式是否一致?
2 回复
使用device_info_plus插件获取设备ID:
- 添加依赖到
pubspec.yaml:
dependencies:
device_info_plus: ^9.0.0
- 代码示例:
import 'package:device_info_plus/device_info_plus.dart';
String deviceId = '';
final deviceInfo = DeviceInfoPlugin();
// Android
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
deviceId = androidInfo.id;
// iOS
IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
deviceId = iosInfo.identifierForVendor;
注意:不同平台获取的ID含义不同,iOS返回的是identifierForVendor。
更多关于flutter如何获取设备id的device_info_plus插件使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,可以使用 device_info_plus 插件获取设备ID,支持Android和iOS平台。
安装插件
在 pubspec.yaml 中添加依赖:
dependencies:
device_info_plus: ^9.0.0
运行 flutter pub get 安装。
使用方法
- 导入包:
import 'package:device_info_plus/device_info_plus.dart';
- 获取设备信息:
Future<void> getDeviceId() async {
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
try {
if (Platform.isAndroid) {
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
String deviceId = androidInfo.id; // 或使用 androidInfo.androidId(需要权限)
print('Android设备ID: $deviceId');
} else if (Platform.isIOS) {
IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
String deviceId = iosInfo.identifierForVendor ?? '未知';
print('iOS设备ID: $deviceId');
}
} catch (e) {
print('获取失败: $e');
}
}
注意事项
- Android:
androidInfo.id在旧版本中为设备ID,新版本推荐使用androidInfo.androidId(需READ_PHONE_STATE权限)。 - iOS:
identifierForVendor在同一开发商的应用中保持一致,卸载所有应用后会重置。 - 权限:Android可能需要添加权限(在
AndroidManifest.xml中):<uses-permission android:name="android.permission.READ_PHONE_STATE" />
示例输出
- Android:
a1b2c3d4... - iOS:
ABCDE-12345...
通过此插件可安全获取设备唯一标识,但注意隐私政策和平台限制。

