flutter如何获取设备id的device_info_plus插件使用

在flutter中使用了device_info_plus插件,但不知道如何正确获取设备ID,有没有具体的代码示例?另外,不同平台获取到的设备ID格式是否一致?

2 回复

使用device_info_plus插件获取设备ID:

  1. 添加依赖到pubspec.yaml
dependencies:
  device_info_plus: ^9.0.0
  1. 代码示例:
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 安装。

使用方法

  1. 导入包
import 'package:device_info_plus/device_info_plus.dart';
  1. 获取设备信息
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');
  }
}

注意事项

  • AndroidandroidInfo.id 在旧版本中为设备ID,新版本推荐使用 androidInfo.androidId(需 READ_PHONE_STATE 权限)。
  • iOSidentifierForVendor 在同一开发商的应用中保持一致,卸载所有应用后会重置。
  • 权限:Android可能需要添加权限(在 AndroidManifest.xml 中):
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    

示例输出

  • Android:a1b2c3d4...
  • iOS:ABCDE-12345...

通过此插件可安全获取设备唯一标识,但注意隐私政策和平台限制。

回到顶部