flutter如何获取设备id
在Flutter开发中,如何安全且合规地获取设备的唯一标识符(如Android ID或IDFA)?不同平台的获取方式是否有差异?需要注意哪些隐私政策或权限问题?求推荐可靠的插件或原生代码实现方案。
2 回复
Flutter中获取设备唯一ID可使用device_info_plus插件。
Android通过androidInfo.androidId获取,iOS通过iosInfo.identifierForVendor获取。
注意:不同平台ID规则不同,且可能为空或重置。
更多关于flutter如何获取设备id的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中获取设备ID可以通过以下方法实现:
推荐方法:使用 device_info_plus 包
1. 添加依赖
在 pubspec.yaml 中添加:
dependencies:
device_info_plus: ^9.0.0
2. 导入包
import 'package:device_info_plus/device_info_plus.dart';
3. 获取设备信息代码
Future<String?> getDeviceId() async {
final DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
try {
if (Platform.isAndroid) {
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
return androidInfo.id; // Android ID
} else if (Platform.isIOS) {
IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
return iosInfo.identifierForVendor; // iOS Vendor ID
}
} catch (e) {
print('获取设备ID失败: $e');
return null;
}
return null;
}
4. 使用示例
String? deviceId = await getDeviceId();
print('设备ID: $deviceId');
注意事项:
- Android: 获取的是
ANDROID_ID,可能为空或重置 - iOS: 获取的是
identifierForVendor,同一开发者的应用在相同设备上相同 - 需要添加相应平台的权限(Android可能需要READ_PHONE_STATE权限)
这是最常用且跨平台兼容性最好的方法。

