Flutter 2.5.3版本中如何获取device_id与device_token?
解决方案
字段获取逻辑
device_id可通过你已经引入的device_info包获取,安卓端取AndroidDeviceInfo.androidId,iOS端取IosDeviceInfo.identifierForVendor即可device_token不属于设备基础信息字段,你需求里的这个字段是谷歌/Facebook生态对应的推送设备令牌,需要集成对应推送服务SDK获取,对接谷歌服务场景下一般取FCM令牌即可
示例代码(Dart)
import 'dart:io'; import 'package:device_info/device_info.dart'; // 集成FCM后引入对应包即可调用获取token逻辑 // import 'package:firebase_messaging/firebase_messaging.dart'; final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); Map<String, dynamic> deviceInfoMap = {}; String? deviceToken; // 获取device_id if (Platform.isAndroid) { AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo; deviceInfoMap['device_id'] = androidInfo.androidId; } else if (Platform.isIOS) { IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo; deviceInfoMap['device_id'] = iosInfo.identifierForVendor; } // 获取device_token(集成FCM后可放开以下注释调用) // deviceToken = await FirebaseMessaging.instance.getToken(); deviceInfoMap['device_token'] = deviceToken ?? '实际获取到的设备token值'; // 组装完整请求体 final requestBody = { "token": "接口要求的登录态字符串", "device_info": deviceInfoMap };
请求体结构参考
{ "token": "string", "device_info": { "device_token": "lfkjklfl", "device_id": "jgkfjdgkfjdlgfd" } }
内容的提问来源于stack exchange,提问作者Vamsee.
相关产品推荐
相关产品推荐

