getSupportedIdentifiers method
获取设备支持的标识符 Android和iOS通用接口 Android会返回:
- androidId: Android ID(工厂重置、刷机、切换用户时会变化,卸载重装不变)
- advertisingId: 广告ID(用户可手动重置,约每月自动重置一次,卸载重装不变)
- installUuid: 安装UUID(每次安装都会生成新的,卸载重装必然变化)
- deviceFingerprint: 设备指纹(基于硬件信息,相对稳定,系统更新或硬件变化时可能变化)
- buildSerial: 设备序列号(硬件级别标识符,除非更换设备否则不变)
- combinedId: 组合ID(多个标识符的组合哈希,变化取决于组成部分)
- isLimitAdTrackingEnabled: 是否限制广告追踪(用户设置,影响广告ID的使用)
iOS会返回:
- iosDeviceID: iOS设备ID(类似Android ID的概念,最推荐用于统计)
- idfv: IDFV(同一开发者应用共享,卸载重装时可能变化)
- idfa: IDFA(广告标识符,iOS 14.5+ 需要用户授权,卸载重装不变)
- keychainUUID: Keychain UUID(存储在钥匙串中,最稳定的标识符)
- deviceFingerprint: 设备指纹(基于硬件信息生成的相对稳定标识符)
- launchUUID: 应用启动UUID(每次应用启动生成,测试用)
- combinedId: 组合ID(多个标识符的组合哈希)
- isLimitAdTrackingEnabled: 是否限制广告追踪(ATT授权状态)
Implementation
@override
Future<Map<String, dynamic>> getSupportedIdentifiers() async {
final result = await methodChannel.invokeMethod('getSupportedIdentifiers');
// print("---------> $result");
if (result == null) return {};
return Map<String, dynamic>.from(result as Map);
}