请注意,在贵司的App中集成小盾提供的SDK产品时:
1.1 根据《网络安全法》《电信条例》《电信和互联网用户个人信息保护规定》等相关法律法规要求及监管实践中的标准,在贵司的最终用户首次启动App并在贵司开始采集信息之前,贵司应以交互界面或设计(如隐私政策弹窗等)向最终用户完整告知收集、使用、与第三方共享最终用户个人信息的目的、方式和范围,并征得最终用户的明示同意。
1.2 为向贵司提供业务安全和风控服务,小盾 SDK 将采集、处理、使用用户的手机终端唯一标志信息IDFA、Android ID、OAID(包含VAID、AAID)、MAC 地址、WIFI列表、无线路由器标识(BSSID、SSID)、设备类型、设备型号、系统类型、粗略位置信息、精准位置信息、应用程序列表、运行中进程信息、网络制式、设备软件版本号、传感器(光传感器、重力传感器、磁场传感器、加速度传感器、陀螺仪传感器、心率传感器)相关设备信息。为确保贵司使用相关服务的合规性,前述隐私政策应涵盖对小盾SDK提供服务并采集、处理、使用相关信息的授权,以上内容供贵司参考,具体表述可由贵司根据贵司隐私协议的整体框架和内容自行确定。
对于上传到 Google Play 商店的每款应用,Google 都要求向所有用户公开应用的隐私和安全做法。因此,当应用(或新版本)上传到 Play 商店时,Google 要求应用开发者填写数据安全表单。有关详细信息,请参阅为 Google Play 的数据安全部分提供信息。
如果您的应用包含我们的Android SDK,那么您可以使用下表作为参考来填写数据安全表单:
复制 AI 提示词,粘贴到 Codex、Copilot、Claude Code 等AI 编码工具,即可自动生成代码,完成 TD SDK 集成
SDK接入示例代码(sample):<https://github.com/trustdecision/mobrisk-android-sample>
如果您使用离线文件的的安装方式,请参考:离线安装SDK指导
在项目根目录的 build.gradle加入maven库的配置
allprojects {
repositories {
...
mavenCentral()
}
}如果您的 Gradle 版本是 7 或更高版本,请将下方配置添加到工程的 settings.gradle
repositories {
...
mavenCentral()
}在应用主模块的 build.gradle 中,声明SDK包依赖
dependencies {
implementation 'com.trustdecision.android:mobrisk:5.2.3.1'
}如果遇到合规性问题,可以在依赖阶段排除相关模块的采集
dependencies {
// 设备指纹
implementation('com.trustdecision.android:mobrisk:5.2.3.1'){
// 移除后sdk不获取安装包列表
exclude group: 'com.trustdecision.android', module: 'packagelist'
// 移除后sdk不会收集READ_PHONE_STATE相关信息
exclude group: 'com.trustdecision.android', module: 'readphone'
// 移除后sdk不会收集地理位置相关信息
exclude group: 'com.trustdecision.android', module: 'location'
// 移除后sdk不会收集传感器相关信息
SDK目前支持 armeabi-v7a、arm64-v8a、x86、x86_64等ABI类型,建议接入方在主模块build.gradle文件内添加 abiFilters配置选择所需要的架构类型,具体架构,请以您自己需要支持的架构为准!
defaultConfig {
...
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}在应⽤module下的 AndroidManifest.xml ⽂件中声明以下权限
<manifest>
<!--必选权限-->
<!--基础网络通信,数据收集完毕,上报时调用-->
<uses-permission android:name="android.permission.INTERNET"/>
<!--SDK加载后,数据采集完准备上报时调用-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--SDK加载后,数据采集时调用-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--如果您的应用是面向海外市场,在google play 上发布,请添加此项-->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
TD_JAVA: TD sdk load success
TD_JAVA: TD sdk init successrGPGX1678775227I9NCwcuVJCb。请在initWithOptions方法之前调用 setOnErrorCodeListener来监听错误信息。
如果开发者需要使用 proguard 进行混淆打包,请在 proguard 配置文件添加如下代码:
-keep class com.trustdecision.**{*;}disableReadPhone | 禁止采集READ_PHONE_STATE权限相关信息,默认允许 |
| country_iso、carrier、network_operator、sim_operator、phone_type、radio_type、device_svn |
disableInstallPackageList | 禁止采集应用列表信息,默认采集 |
| installed_packages |
customMessage | 自定义消息,sdk支持透传和存储 |
|
public static void initWithOptions(Context ctx, TDRisk.Builder builder);
// 异步回调获取
public static void getBlackBox(TDRiskCallback callback);
// 同步获取
public static String getBlackBox();
// 应用入口APPlication的onCreate
TDRisk.Builder builder = new TDRisk.Builder()
/*************************** 必传 ***************************/
.partner("请输入您的合作方编码") // 合作方(partnerCode),请填写partnerCode,不要填partnerKey
.appKey("请输入您的appKey") // 配置AppKey,请联系运营获取
.country("请输入您接入的数据中心"); // 数据中心参数,列表可以参考下文全部配置说明
/*************************** 必传 ***************************/
if(⽤户同意隐私协议){
try {
TDRisk.initWithOptions(getApplicationContext(), builder);
TDRisk.getBlackBox(new TDRiskCallback() {
@Override
public void onEvent(String blackbox) {
// 此处回调在新开辟的子线程
// ⽹络正常的情况下,会在1-2s内返回结果;⽹络异常的情况下,会在超时时间(默认最长15s)后返回
Log.i("TD", "init & get success");
}
});
} catch (Exception e) {
Log.e("TD", "init & get error", e);
}
}
// 比如注册的时候
public void register() {
// ...
try {
String blackBox = TDRisk.getBlackBox();
} catch (Exception e) {
Log.e("TD", "getBlackBox error", e);
}
// ...
}
TDRisk.getSDKVersion()
TDRisk.setOnErrorCodeListener(new TDErrorCodeCallback() {
@Override
public void onResult(int errorCode, String errorMsg) {
Log.d(TAG, "errorCode:" + errorCode + "," + "errorMsg:" + errorMsg);
}
});