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...
通过此插件可安全获取设备唯一标识,但注意隐私政策和平台限制。
 
        
       
             
             
            

