---
code: openharmony_sdk_compliance
name: "合规指南"
wikiToken: VS7UwlrJaiOAzqk4oDhc4Qggnld
parentWikiToken: CdewwjvM9irVHckq2lvctVPNnhf
updateTime: 1768809398000
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=openharmony_sdk_compliance
---
# 合规指南

### 一、最新SDK版本说明

满足监管新规的最新SDK版本：1.7.6

### 二、权限调用合规要求

***权限名称***

***权限说明***

***使用目的***

***权限申请时机***

*ohos.permission.INTERNET*

*允许使用Internet网络*

*在使用上报数据功能时，用于访问网络数据*

*SDK初始化或者调用上报数据接口时*

*ohos.permission.GET_NETWORK_INFO*

*允许应用获取网络信息*

*在使用上报数据功能时，SDK 会根据网络状态选择是否发送数据*

*SDK初始化时*

*ohos.permission.STORE_PERSISTENT_DATA*

*允许应用存储持久化的数据*

*存储应用卸载之后需要保持不变的数据*

*SDK初始化时*

### 三、延迟初始化要求

为了避免您的应用在未获取用户的同意前SDK提前处理用户的个人信息，SDK需要在用户同意 《隐私政策》后初始化。

示例代码如下：

```
// 根据隐私协议判断是否开启数据采集
if (授权隐私政策) {
    TDAnalytics.init(context, "appId", "serverUrl")
}
```

SDK初始化的时候会收集操作系统版本、设备制造商、操作系统、屏幕分辨率、设备型号、APP 版本、网络状态、网络运营商、应用安装时间、系统语言等信息，用于统计分析功能。

### 四、SDK 可选个人信息的配置说明

开发者可以通过 SDK 可选个⼈信息的配置示例说明进⾏配置。您可以在SDK初始化的时候配置`disablePresetProperties` 参数，配置需要禁用的设备信息数组。disablePresetProperties默认是空数组，就是默认会采集所有的预置属性，如果你需要禁用某一个预置属性，可以将需要禁用的预置属性添加到disablePresetProperties数组中。

以下是SDK 中所有事件默认采集的预置属性：

**属性名**

**中文名**

**属性类型**

**采集时机**

**说明**

#ip

IP 地址

文本

服务端采集

用户的 IP 地址，AE 将以此获取用户的地理位置信息

#country

国家

文本

服务端采集

用户所在国家，根据 IP 地址生成

#country_code

国家代码

文本

服务端采集

用户所在国家的国家代码(ISO 3166-1 alpha-2，即两位大写英文字母)，根据 IP 地址生成

#province

省份

文本

服务端采集

用户所在省份，根据 IP 地址生成

#city

城市

文本

服务端采集

用户所在城市，根据 IP 地址生成

#os_version

操作系统版本

文本

初始化时采集一次

iOS 11.2.2、Android 8.0.0 等

#manufacturer

设备制造商

文本

初始化时采集一次

用户设备的制造商，如 Apple，vivo 等

#os

操作系统

文本

初始化时采集一次

如 Android、iOS、HarmonyOS 等

#device_id

设备 ID

文本

初始化时采集一次

用户的设备 ID，iOS 取用户的 IDFV 或 UUID，Android 取 androidID

#screen_height

屏幕高度

数值

初始化时采集一次

用户设备的屏幕高度，如 1920 等

#screen_width

屏幕宽度

数值

初始化时采集一次

用户设备的屏幕高度，如 1080 等

#device_model

设备型号

文本

初始化时采集一次

用户设备的型号，如 iPhone 8 等

#device_type

设备类型

文本

初始化时采集一次

设备类型，如 "Tablet"、"Phone"

#app_version

APP 版本

文本

初始化时采集一次

您的 APP 的版本

#bundle_id

应用唯一标识

文本

初始化时采集一次

应用包名或进程名

#lib

SDK 类型

文本

初始化时采集一次

您接入 SDK 的类型，如 Android，iOS 等

#lib_version

SDK 版本

文本

初始化时采集一次

您接入 SDK 的版本

#network_type

网络状态

文本

初始化时采集一次，网络状态变化时采集

上传事件时的网络状态，如 WIFI、3G、4G 等

#carrier

网络运营商

文本

初始化时采集一次

用户设备的网络运营商，如中国移动，中国电信等

#zone_offset

时区偏移

数值

事件发生时采集

数据时间相对 UTC 时间的偏移小时数

#install_time

程序安装时间

时间

初始化时采集一次

用户安装应用的时间，值来源于系统

#system_language

系统语言

文本

初始化时采集一次

用户设备的系统语言(ISO 639-1，即两位小写英文字母)，如 zh, en 等

例如您需要禁用#os（操作系统）、#os_version（操作系统版本），配置示例代码如下：

```
**let **config = **new **TDConfig()
config.appId = 'appId'
config.serverUrl = 'url'
config.disablePresetProperties =["#os", "#os_version"]
TDAnalytics.initWithConfig(context, config)
```

如果您需要禁用全部的预置属性，可以将所有的属性配置到disablePresetProperties数组中，示例代码如下：

```
**let **config = **new **TDConfig()
config.appId = 'appId'
config.serverUrl = 'url'
config.disablePresetProperties =["#lib", "#lib_version", "#os", "#os_version", "#bundle_id", "#install_time", "#manufacturer", "#device_model",
"#device_type", "#screen_width", "#screen_height","#system_language","#carrier","#app_version","#device_id","#network_type","#ip"]
TDAnalytics.initWithConfig(context, config)
```

### 五、隐私政策披露要求与示例说明

在您接入、使用数数科技SDK服务前，我们要求您在隐私政策中向用户告知我们SDK的名称、SDK提供方名称、收集个人信息类型、使用目的、隐私政策链接，并获取用户的同意或取得其他合法性基础。您可以参考如下方式提供条款内容：

**第三方SDK名称**：数数科技SDK

**第三方公司名称**：数数信息科技(上海)有限公司

**收集个人信息类型**：在《隐私政策》中收集和获得您的个人信息栏目中根据实际情况填写以下内容，当您在激活使用时，我们会通过数数科技SDK收集您的设备信息（IP 地址解析的位置信息、国家、国家代码、省份、城市、操作系统版本、设备制造商、操作系统、屏幕分辨率、设备型号、APP 版本、网络状态、网络运营商、应用安装时间、系统语言）。

**个人信息收集时机：**SDK初始化时获取。

**使用目的**：用于统计分析用户在 App 内的使用效果。

**隐私政策链接：****https://docs-v2.thinkingdata.cn/?version=latest&lan=zh-CN&code=privacy_cn&anchorId=**

### 六、最终用户授权同意的建议方式

App ⾸次运⾏时应当有隐私弹窗，隐私弹窗中应公示简版隐私政策内容并附完整版隐私政策链接，并明 确提示最终⽤户阅读并选择是否同意隐私政策；隐私弹窗应提供同意按钮和拒绝同意的按钮，并由最终⽤户主动选择。

建议通过弹窗的形式征求用户授权同意，弹窗内容中需包含数数科技SDK需要申请的权限和采集的用户相关信息。

隐私政策授权弹窗示例：

敏感个人信息授权弹窗示例：
