SDK 合规使用指南

最近更新时间:2023-12-27 11:53:52

我的收藏
为帮助使用腾讯连连 APP SDK 的开发运营者(以下简称“您”)在符合个人信息保护相关法律法规、政策及标准的规定下合规接入、使用第三方 SDK, 物联网开发平台 (以下简称"我们")特制定《腾讯连连 APP SDK 使用指南》(以下简称“文档”),便于您使用腾讯连连 APP SDK 过程中符合相应的合规要求。请您在接入、使用腾讯连连 APP SDK 前,充分阅读和了解本文档内容。

一、接入/升级至满足监管新规的最新 SDK 版本

我们高度重视 SDK 的功能优化、个人信息安全和保护,将适时升级迭代 SDK 版本以提升产品的安全性和稳定性,确保符合相关法律法规及、监管及标准的最新合规要求。强烈建议您升级使用最新版本 SDK,以便保障您正常使用 SDK 最新功能、避免因您更新不及时产生的不利影响(例如 App 被通报或下架等)。

腾讯连连 APP SDK 更新后,我们会及时通过官网公告通知、站内信、弹窗、红点、邮件、短信或其他适当的方式提醒您更新的内容,以便您及时了解SDK最新版本信息。同时,您可以访问 SDK 最新版本下载链接:Android端iOS端

二、APP 隐私政策中应披露第三方 SDK 相关情况

我们提供以下告知文案示例供您参考,您可以通过文字或表格方式向用户告知。请您理解SDK不同版本提供的功能服务及所需的字段信息可能会因开发者的选择或配置不同而存在差异,因此请您参考 SDK 隐私政策及您实际接入使用的SDK运行情况向用户进行充分告知并获得用户的同意。
第三方 SDK 名称
第三方 SDK 公司名称
处理的个人信息类型
使用目的
第三方个人信息保护规则
Fastjson
(开源)
阿里巴巴集团控股有限公司
用于完成数据json转换。
ZXing Core
(开源)
Google(谷歌)
相机
解析二维码内容
esptouch
乐鑫信息科技(上海)股份有限公司
WIFI 列表
获取 WiFi 列表中的名称和 ssid,对设备进行配网。
java-websocket
(开源)
Nathan Rajlich
用于实现websocket协议服务。
SLF4J API Module
(开源)
Apache软件基金会
个人日志
记录个人日志。

三、获得用户同意后再初始化 SDK

为满足法律法规及监管要求,您应确保在获得用户的同意后再初始化 SDK,并在用户触发 SDK 具体功能服务后通过配置 SDK 的相关参数完成发送请求的调用,此时 SDK 才会按照您设置的配置方式采集功能所需的个人信息或申请功能所需的权限。为了避免您在获取用户同意前,提前启动 SDK 收集使用用户个人信息,SDK 提供了延迟 SDK 初始化调用的 API 接口、合规初始化技术配置方案,点击 SDK 接口文档可查看详细操作指引:

四、可选信息配置开关

SDK 向您提供了可选个人信息及权限的控制开关,您可以根据 APP 所需的 SDK 功能服务自行配置打开或关闭隐私信息请求开关,具体可参考如下代码示例:
Android 端权限管理开关相关代码示例:ControlPermissionActivity.kt
private var onItemClicked = object: PermissionsAdapter.OnItemActionListener {
override fun onItemSwitched(pos: Int, permissionAccessInfo: PermissionAccessInfo) {
if (pos == 0) { //通知
val intent: Intent = Intent()
try {
intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS

//8.0及以后版本使用这两个extra. >=API 26
intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
intent.putExtra(Settings.EXTRA_CHANNEL_ID, applicationInfo.uid)

//5.0-7.1 使用这两个extra. <= API 25, >=API 21
intent.putExtra("app_package", packageName)
intent.putExtra("app_uid", applicationInfo.uid)

startActivity(intent)
} catch (e: Exception) {
e.printStackTrace()

//其他低版本或者异常情况,走该节点。进入APP设置界面
intent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
intent.putExtra("package", packageName)

//val uri = Uri.fromParts("package", packageName, null)
//intent.data = uri
startActivity(intent)
}
return
}
// if (!permissionAccessInfo.permissionAccessed) { // 没有对应的权限,尝试开启权限
// ActivityCompat.requestPermissions(this@ControlPermissionActivity, arrayOf(permissionAccessInfo.permission), REQUEST_CODE)
// return
// }
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
intent.data = Uri.parse("package:$packageName")
startActivityForResult(intent, REQUEST_CODE) // 申请权限返回执行
}
}

iOS 端权限管理开关相关代码示例:TIoTAuthentationVC.m
- (NSMutableArray *)dataArr{
if (!_dataArr) {

_dataArr = [NSMutableArray arrayWithArray:@[
@[@{@"title":NSLocalizedString(@"authentation_privacy_conte1", @"通知推送权限"),@"value":@"",@"vc":@"",@"haveArrow":@"2"}],
@[@{@"title":NSLocalizedString(@"authentation_privacy_conte2", @"位置信息"),@"value":@"",@"vc":@"",@"haveArrow":@"2"}],
@[@{@"title":NSLocalizedString(@"authentation_privacy_conte3", @"摄像头权限"),@"value":@"",@"vc":@"",@"haveArrow":@"2"}],
@[@{@"title":NSLocalizedString(@"authentation_privacy_conte6", @"相册权限"),@"value":@"",@"vc":@"",@"haveArrow":@"2"}],
@[@{@"title":NSLocalizedString(@"authentation_privacy_conte5", @"麦克风权限"),@"value":@"",@"vc":@"",@"haveArrow":@"2"}],
@[@{@"title":NSLocalizedString(@"authentation_privacy_conte4", @"蓝牙权限"),@"value":@"",@"vc":@"",@"haveArrow":@"2"}],
]];
}
return _dataArr;
}

1、配置可选权限

为实现 SDK 产品的相应功能所必须,我们会通过开发者的应用在对应的功能场景下申请所需权限。如您是开发者,请您注意,您应按您的应用的具体功能场景,在用户触发具体功能场景时调用 SDK 的相应功能、调用相应权限或处理终端用户的个人信息,未到具体业务或功能场景时不应调用相应权限,点击此处可查看相关操作指引。
操作系统
权限名称
使用目的
功能场景(申请时机)
是否可选
Android
android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION
允许获取当前定位,显示当地天气和城市信息,获取 WiFi 参数、列表、IP。
开发者在调用需要该权限的 SDK 功能时进行调用。打开定位、当地天气、城市信息、WiFi 参数、列表和 IP 功能。
可选
Android
android.permission.CAMERA
允许拍摄上传图片和音视频通话,扫码绑定设备。
开发者在调用需要该权限的SDK功能时进行调用。打开摄像头、相册和音视频通话
功能。

可选
Android
android.permission.RECORD_AUDIO
允许语音通话。
开发者在调用需要该权限的 SDK 功能时进行调用。
可选
Android
android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE
允许从相册上传图片。
开发者在调用需要该权限的 SDK 功能时进行调用。打开相册功能。
可选
Android
android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE
允许从相册上传图片,保存日志。
开发者在调用需要该权限的 SDK 功能时进行调用。打开相册功能。
可选

Android
android.permission.BLUETOOTH android.permission.BLUETOOTH_ADMIN android.permission.ACCESS_COARSE_LOCATION
扫描蓝牙设备、蓝牙辅助配网,允许设备配网,和纯蓝牙设备通信。
开发者在调用需要该权限的 SDK 功能时进行调用。打开蓝牙功能。
可选
操作系统
权限名称
使用目的
功能场景(申请时机)
是否可选
iOS
Privacy -Privacy - Location When In Use Usage Description
允许获取当前定位,显示当地天气和城市信息,获取 WiFi 参数、列表、IP。
开发者在调用需要该权限的 SDK 功能时进行调用。打开定位、当地天气、城市信息、WiFi 参数、列表和 IP 功能。
可选
iOS
Privacy - Camera Usage Description
允许拍摄上传图片和音视频通话,扫码绑定设备。
开发者在调用需要该权限的 SDK 功能时进行调用。打开摄像头、相册和音视频通话功能。
可选

iOS
Privacy - Microphone Usage Description
允许语音通话。
开发者在调用需要该权限的 SDK 功能时进行调用。打开语音通话功能。
可选
iOS
Privacy - Photo Library Usage Description Privacy - Photo Library Additions Usage Description
允许从相册上传图片。
开发者在调用需要该权限的 SDK 功能时进行调用。打开相册功能。
可选

iOS
Supports Document Browser
允许从相册上传图片,保存日志。
开发者在调用需要该权限的 SDK 功能时进行调用。打开相册功能。
可选

iOS
Privacy -Bluetooth Always Usage Description Privacy - Bluetooth Peripheral Usage Description
扫描蓝牙设备、蓝牙辅助配网,允许设备配网,和纯蓝牙设备通信。
开发者在调用需要该权限的 SDK 功能时进行调用。打开蓝牙功能。
可选
iOS
Privacy - Local Network Usage Description
获取组播权限,用于智能产品配网。
开发者在调用需要该权限的 SDK 功能时进行调用,与智能产品进行配网传输广播包数据。
可选
请注意,在不同设备和系统中,权限显示方式及关闭方式会有所不同,需同时参考其使用的设备及操作系统开发方的说明或指引。当终端用户关闭权限即代表其取消了相应的授权,我们和开发者将不会继续收集和使用相关权限所对应的个人信息,也无法为终端用户提供需要终端用户开启权限才能提供的对应的功能。

2、配置可选个人信息

为实现 SDK 产品的基本业务功能所必须,我们将向终端用户或开发者收集终端用户在使用与 SDK 产品相关的功能时产生的如下个人信息。
SDK 目前不涉及提供其他扩展业务功能,如后续提供其他扩展业务功能,将通过本隐私政策进行说明并通过《SDK 合规使用指南》为开发者提供扩展功能的配置方式和示例。
SDK名称
个人信息类型
是否可选
用途和目的
功能描述
操作系统
腾讯连连APP SDK
WiFi 状态
必选
用于设备配网时检查网络状态。
检查网络状态。
Android
WiFi 配网参数
必选
用于设备配网流程根据 WiFi 参数向设备发送配网信息。
设备配网流程。
Android、iOS
WiFi 列表
必选
用于设备配网时,用户选择热点 WiFi。
设备配网时,选择热点 WiFi。
Android
系统设置
可选
用于本地保存音视频、日志文件。
本地保存音视频、日志文件。
Android、iOS
系统属性
可选
用于上报日志、接口参数中区别中英文和平台。
上报日志、接口参数中区别中英文和平台。
Android、iOS
IP 地址
必选
用于soft 方式配网,以及设备日常使用过程中的涉及 socket 通信连接。
soft 方式配网以及涉及的 socket 连接。
Android、iOS
位置信息
可选
用于获取当前定位,显示当地天气和城市信息。
允许获取当前定位,显示当地天气和城市信息。
Android、iOS
相机
可选
用于拍摄上传图片和音视频通话,扫码绑定设备。
允许拍摄上传图片和音视频通话,扫码绑定设备。
Android、iOS
录音
可选
用于语音通话。
语音通话。
Android、iOS
相册
可选
用于上传图片,保存图片,保存视频。
上传图片,保存图片,保存视频。
Android、iOS
手机号
必选
用于用户注册、登录、显示个人信息。
用户注册、登录、显示个人信息。
Android
MAC 地址
必选
用于设备配网请求参数。
设备配网请求参数用到。
iOS
设备型号
必选
用于支持 App 业务信息。
用于支持 App 业务信息。
iOS
精确位置
必选
用于WiFi信息配网。
用于WiFi设备配网使用。
iOS
蓝牙mac
必选
用于扫描蓝牙设备进行蓝牙配网。
调取系统API获取蓝牙Mac地址信息
iOS

3、配置可按照不同频次、精度收集个人信息

(1)SDK 的数据采集仅在 App 调用/最终用户触发相关功能时触发,不涉及定时逻辑等频次控制选项。
(2)SDK 通过可选权限让 App 可以控制是否申请精确地理位置权限或粗略地理位置权限,主要涉及【定位相关功能】,通过权限进行控制。

4、指导建议

请您重点关注,在 APP 安装、运行和使用相关功能时,您应遵从国家相关法律法规、监管政策及标准的要求,收集用户个人信息或申请敏感权限,不得存在以下违规行为:
(1)未经用户同意不得收集任何个人信息。
(2)非服务所必需或无合理应用场景下,用户拒绝相关授权申请后,应用不得自动退出或关闭。
(3)在用户明确拒绝权限申请后,APP不应向用户频繁弹窗或反复申请开启与当前服务场景无关的权限、影响用户正常使用,建议掌握合适时机申请敏感权限,不得影响其他功能可用。
(4)不得未明确告知用户索取权限的目的和用途。
(5)APP 首次打开或运行中,未见使用权限对应的相关功能或服务时,不应提前向用户弹窗申请开启敏感权限。
(6)不得超出业务功能实际需要过度收集个人信息。

五、用户权利保障机制

本 SDK 提供以下接口配置,以便您帮助终端用户实现个人信息主体权利请求。
1. 终端用户请求查阅、复制其个人信息时,您可通过调用 Utils.copy 接口查看本 SDK 采集的个人信息、获取本 SDK 采集的用户个人信息副本。
2. 终端用户撤销同意处理其个人信息的授权时,您可通过调用 HttpRequest.instance.cancelAccount 接口停止使用 SDK 功能并停止采集与关闭功能相应的用户数据。
3. 终端用户请求删除其个人信息时,您可通过调用 ControlPermissionActivity 接口删除采集、上报到本SDK服务端的用户个人信息。
4. 如果您需要我们协助来实现您最终用户的其他个人信息主体权利请求,您可以通过“联系方式”来申请协助。

六、联系方式

我们设立了专门的个人信息保护团队和个人信息保护负责人, 如果您和/或终端用户对本规则或个人信息保护相关事宜有任何疑问或投诉、建议时, 可以通过以下方式与我们联系:
通过 腾讯客服填写工单 与我们联系。
将问题发送至 Dataprivacy@tencent.com;
邮寄信件至:中国广东省深圳市南山区海天二路33号腾讯滨海大厦 数据隐私保护部(收),邮编:518054。
我们将尽快审核所涉问题, 并在15个工作日或法律法规规定的期限内予以反馈。

七、注意事项

1、您接入腾讯连连 APP SDK 前的合规自查。
为确保您就本 SDK 的使用获得终端用户的授权,且遵守个人信息保护要求和合规流程,我们建议您在接入腾讯连连 APP SDK 前进行合规自查。
请仔细阅读并按本说明文档提示对您APP的《隐私政策》进行合规自查。
请务必做延迟初始化配置,确保获得用户同意后再初始化 SDK。
当腾讯连连 APP SDK 基于最新的法律法规或监管要求进行更新后,请您在收到版本更新通知时及时将您 APP 集成的腾讯连连 APP SDK 升级到最新版本。
其他国家相关法律法规、监管政策及标准的要求。
2、以下合规文件供开发者参考。