getSupportedIdentifiers method

  1. @override
Future<Map<String, dynamic>> getSupportedIdentifiers()
override

获取设备支持的标识符 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);
}