getDeviceId static method
获取设备唯一标识符
Implementation
static Future<String> getDeviceId() async {
try {
if (Platform.isAndroid) {
final androidInfo = await _deviceInfo.androidInfo;
// 组合多个标识符以提高唯一性
return '${androidInfo.id}_${androidInfo.model}_${androidInfo.device}';
} else if (Platform.isIOS) {
final iosInfo = await _deviceInfo.iosInfo;
return iosInfo.identifierForVendor ?? 'ios_default';
} else if (Platform.isMacOS) {
final macInfo = await _deviceInfo.macOsInfo;
return '${macInfo.computerName}_${macInfo.model}';
} else if (Platform.isWindows) {
final windowsInfo = await _deviceInfo.windowsInfo;
return '${windowsInfo.computerName}_${windowsInfo.deviceId}';
} else if (Platform.isLinux) {
final linuxInfo = await _deviceInfo.linuxInfo;
return '${linuxInfo.machineId}_${linuxInfo.id}';
}
return 'unknown_device';
} on PlatformException {
return 'device_error_${DateTime.now().millisecondsSinceEpoch}';
}
}