1 采集权限

权限名权限说明使用说明
INTERNET网络权限该权限为必须权限,SDK需要将数据进行数据网络通信,没有该权限将无法正常工作
READ_PHONE_STATE手机信息状态权限该权限为可选权限,用于获取用户IMEI、DeviceId,为开发者提供身份识别的指标之一
BLUETOOTH蓝牙权限该权限为可选权限,用于获取用户设备蓝牙特征,为开发者提供身份识别的指标之一
ACCESS_NETWORK_STATE网络状态权限该权限为可选权限,用于获取监测上报网络环境、移动网络服务商信息,以便于监测上报环境质量
ACCESS_WIFI_STATEWifi状态权限该权限为可选权限,用于获取用户MAC信息,为开发者提供身份识别的指标之一
ACCESS_FINE_LOCATION定位权限该权限为可选权限,用于获取用户地理定位信息的所需权限之一,通过定位信息为开发者提供反作弊能力及其地理分布情况
ACCESS_COARSE_LOCATION定位权限该权限为可选权限,用于获取用户地理定位信息的所需权限之一,通过定位信息为开发者提供反作弊能力及其地理分布情况

2 采集信息

信息名信息隐私风险评估用途采集开关枚举值
国际移动设备识别码(IMEI)个人设备信息-低/中风险(建议开发者结合业务场景评估具体风险)标识匿名用户需要用到该字段Configuration.IMEI
设备序列号个人设备信息-低/中风险(建议开发者结合业务场景评估具体风险)标识匿名用户需要用到该字段Configuration.SERIAL_ID
Android ID个人设备信息-低/中风险(建议开发者结合业务场景评估具体风险)标识匿名用户需要用到该字段Configuration.ANDROID_ID
Mac地址个人设备信息-低/中风险(建议开发者结合业务场景评估具体风险)标识匿名用户需要用到该字段Configuration.MAC
OAID个人设备信息-低/中风险(建议开发者结合业务场景评估具体风险)标识匿名用户需要用到该字段
蓝牙支持情况无风险标识匿名用户需要用到该字段
蓝牙版本无风险标识匿名用户需要用到该字段Configuration.BLUETOOTH
NFC支持情况无风险标识匿名用户需要用到该字段
终端制造厂商无风险进行设备统计分析需要用到该字段
设备品牌方无风险进行设备统计分析需要用到该字段
设备型号无风险进行设备统计分析需要用到该字段
应用版本号无风险进行应用版本统计分析需要用到该字段
设备屏幕像素无风险进行应用分辨率分布分析需要用到该字段
地理位置(精确)个人信息-低/中风险(建议开发者结合业务场景评估具体风险)可选,在用户时间轴展示地理位置信息需要用到该字段Configuration.LOCATION
系统版本信息无风险进行系统版本统计分析需要用到该字段
网络服务商无风险进行应用网络统计分析需要用到该字段Configuration.NETWORK_OPERATOR
当前网络连接情况无风险进行应用网络统计分析需要用到该字段Configuration.NETWORK_STATE
身份类型1个人信息-低/中风险(建议开发者结合业务场景评估具体风险可选, 用户同意后品牌方采集上送
身份值1个人信息-低/中风险(建议开发者结合业务场景评估具体风险可选,用户同意后品牌方采集上送
身份类型2个人信息-低/中风险(建议开发者结合业务场景评估具体风险可选,用户同意后品牌方采集上送
身份值2个人信息-低/中风险(建议开发者结合业务场景评估具体风险可选,用户同意后品牌方采集上送
身份类型3个人信息-低/中风险(建议开发者结合业务场景评估具体风险可选,用户同意后品牌方采集上送
身份值3个人信息-低/中风险(建议开发者结合业务场景评估具体风险可选,用户同意后品牌方采集上送

3 采集开关

DMHub Android SDK提供细粒度的开关,可以在SDK初始化时,或者初始化完成后,运行时,禁用一项,或者多项项设备信息的自动采集。

请注意,该特性 SDK 3.0.9 开始支持

3.1 可以禁止采集的采集项

采集项枚举值
imeiConfiguration.IMEI
蓝牙信息Configuration.BLUETOOTH
mac地址信息Configuration.MAC
地理位置(精确)Configuration.LOCATION
当前网络连接情况Configuration.NETWORK_STATE
androidId 信息Configuration.NETWORK_OPERATOR
当前网络连接情况Configuration.ANDROID_ID
设备序列号Configuration.SERIAL_ID
Android IDConfiguration.ANDROID_ID

3.1 SDK初始化时,禁止采集项

如果SDK初始化时,明确不希望采集项被访问,则可以通过以下接口进行屏蔽配置

  • 接口定义
/**
  * 禁止采集目标配置信息
  * @param names 采集内容
  */
 public static void disableCollect(String... names);
  • 代码示例

禁止采集android id 和imei

DMHubSDK.init(this, Configuration.create(
                   "TrackURL",
                   "appId",
                   "appName")
                   .disableCollect(
                           Configuration.ANDROID_ID,  // 屏蔽 Android ID
                           Configuration.IMEI)        // 屏幕 IMEI
         );

如果需要根据用户的选择,运行时动态决定是否禁用,或者启用采集项,可以采用如下接口

  • 代码示例

运行时禁用采集

DMHubSDK.disableCollect(
                    Configuration.ANDROID_ID,  // 屏蔽 Android ID
                    Configuration.IMEI);      // 屏幕 IMEI

运行时允许采集

DMHubSDK.enableCollect(
                    Configuration.ANDROID_ID,  // 启用 Android ID
                    Configuration.IMEI);      // 启用 IMEI