其他
自定义App版本号
基调听云App SDK默认使用应用的「versionName」作为版本号上传,如需自定义版本号可以在初始化SDK时调用该接口进行配置。
- 相关接口
/**
*@param versionName 最多包含64个字符,支持中文、英文、数字、下划线
*/
NBSAppAgent.setVersionName(String versionName);
- 代码示例
public class MyApplication extends Application {
@Override
public void onCreate() {
NBSAppAgent.setLicenseKey("AppKey")
.setVersionName("v2.11.1")//在初始化SDK时调用接口设置版本号
.start(this.getApplicationContext());
}
}
自定义渠道
开发者可以在初始化基调听云App SDK时设置自定义的渠道名称。
- 相关接口
/**
* @param channelID 渠道ID。
* 可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。
* 首尾字符不可以为空格。不要使用纯数字作为渠道ID。最多256个字符。
*/
NBSAppAgent.setChannelID(String channelID);
- 代码示例
public class MyApplication extends Application {
@Override
public void onCreate() {
NBSAppAgent.setLicenseKey("AppKey")
.setChannelID("应用宝")//在初始化SDK时调用接口设置渠道
.start(this.getApplicationContext());
}
}
设置地理位置信息
可通过调用接口设置经纬度以便精准获取设备地理位置信息。
- 相关接口
/**
* @param lat 纬度
* @param lng 经度
*/
NBSAppAgent.setLatLng(double lat, double lng);
- 代码示例
public class MyApplication extends Application {
@Override
public void onCreate() {
NBSAppAgent.setLatLng(39.936846,116.39277);// 设置经纬度
}
}
设置 SDK 日志级别
默认情况下,SDK 仅打印初始化状态的几行日志。可以通过 setLogLevel() 控制 SDK 输出更多日志。
建议仅在调试环境下调用此接口。
- 相关接口
/**
* @param logLevel 默认 NBSLogLevel.NONE,支持设置为 NBSLogLevel.NONE,NBSLogLevel.DEBUG,NBSLogLevel.INFO,NBSLogLevel.WARNING(),NBSLogLevel.ERROR();
*/
NBSAppAgent.setLogLevel(NBSLogLevel logLevel);
- 代码示例
public class MyApplication extends Application {
@Override
public void onCreate() {
NBSAppAgent.setLogLevel(NBSLogLevel.INFO);// 设置为 INFO 级别,SDK 将打印数据上传相关日志
NBSAppAgent.setLicenseKey("AppKey")
.start(this.getApplicationContext());
}
}
只主进程采集数据
App SDK 在 Application 初始化时,默认采集所有进程的数据,也支持设置只采集主进程的数据。
- 相关接口
/**
* @param enable 默认 flase,设置为 true 只采集主进程数据
*/
NBSAppAgent.withOnlyMainProcEnabled(boolean enable);
- 代码示例
public class MyApplication extends Application {
@Override
public void onCreate() {
NBSAppAgent.setLicenseKey("AppKey")
.withOnlyMainProcEnabled(true)//设置为 true,只采集主进程数据
.start(this.getApplicationContext());
}
}
首次启动开启模块功能开关
出于兼容性考虑, 首次启动 SDK 仅在调试模式下开启全部功能模块,非调试模式下仅开启崩溃模块,可通过以下接口开启 SDK 的模块开关 模块功能开关接口。
- 相关接口
/**
* @param option 开关的状态值
* SDK 定义了以下开关
* 网络数据采集
* NBSAppAgent.HTTP_NETWORK_ENABLED = 1;
* UI数据采集(启动、页面、操作数据)
* NBSAppAgent.UI_ENABLED = 2;
* 崩溃数据采集
* NBSAppAgent.CRASH_ENABLED = 4;
* WebView数据采集
* NBSAppAgent.WEBVIEW_ENABLED = 8;
* Socket Hook
* NBSAppAgent.SOCKET_DATA_ENABLED = 16;
* 跨应用功能
* NBSAppAgent.CROSS_APP_ENABLED = 32;
* 卡顿数据采集
* NBSAppAgent.ANR_ENABLED = 64;
* 行为数据采集
* NBSAppAgent.USER_ACTION_ENABLED = 128;
* CDN数据采集
* NBSAppAgent.CDN_ENDBLED = 256;
* 视频录制采集
* NBSAppAgent.RECORD_ENDBLED = 512;
* 全量Trace采集
* NBSAppAgent.ALL_TRACE_COLLECT_ENDBLED = 1024;
* 暴力点击采集
* NBSAppAgent.VIOLENCE_ENDBLED = 2048;
* 日志回捞
* NBSAppAgent.LOG_MODULE_ENABLED = 4096;
* OOM 采集
* NBSAppAgent.OOM_MODULE_ENABLED = 8192;
* 耗电采集
* NBSAppAgent.BATTERY_MODULE_ENABLED = 16384;
* 耗电异常采集
* NBSAppAgent.BATTERY_ERROR_ENABLED = 32768;
* 网络内容采集
* NBSAppAgent.RECORD_NETWORK_ENABLE = 65536;
* CPU 指标和异常采集
* NBSAppAgent.CPU_MODULE_ENABLED = 131072;
* FPS 采集
* NBSAppAgent.FPS_MODULE_ENABLED = 262144;
* 退出原因采集
* NBSAppAgent.APP_EXIT_ENABLED = 8388608;
*/
NBSAppAgent.setStartOption(int option);
- 代码示例
public void onCreate() {
NBSAppAgent.setLicenseKey("AppKey")
.setStartOption(NBSAppAgent.HTTP_NETWORK_ENABLED | NBSAppAgent.UI_ENABLED | NBSAppAgent.CRASH_ENABLED)
//首次启动开启网络、UI、崩溃数据采集
.start(this.getApplicationContext());
}
获取基调听云设备 ID
应用首次启动时,基调听云服务器会下发 deviceId 用以标识设备。用户可以通过接口获取基调听云的 deviceId 值。
- 相关接口
/**
* @return 返回基调听云设备 ID
*/
NBSAppAgent.getTingyunDeviceId()
- 代码示例
public void onCreate() {
String tingYunDid = NBSAppAgent.getTingyunDeviceId();
if(!TextUtils.isEmpty(tingYunDid)){//若不存在 deviceId,返回 null。建议判空后使用
...
}
}
忽略基调听云 Scheme 配置
基调听云 Scheme 适用于应用开发及运营人员,对 SDK 采集的页面及操作数据进行可视化命名,可能会触发弹窗申请悬浮窗权限。对于 Scheme 拉活,我们建议您另外定义 Scheme。若其他应用,已经用了基调听云 Scheme 来唤起您的应用,可以使用 setIngoreScheme() 方法指定 Scheme,SDK 对该 Scheme 将不再开启可视化配置功能 。
- 相关接口
/**
* @param scheme 传入忽略的 scheme 值
*/
NBSAppAgent.setIngoreScheme(String scheme);
- 代码示例
public class MyApplication extends Application {
@Override
public void onCreate() {
NBSAppAgent.setLicenseKey("AppKey")
.setIngoreScheme("tingyun.1234")//在初始化 SDK 时调用接口设置要忽略的 scheme 值
.start(this.getApplicationContext());
}
}
设置 okhttp3.EventListener 开关
若项目集成了 OkHttp3.11.0 或以上版本,基调听云 SDK 会通过 EventListener 来采集数据,若您的项目也设置了 EventListener,基调听云 SDK 会在提替换成时记录之前的 EventListener。基调听云 SDK 在收到相关回调方法时,会回调给项目的 EventListener,就不会影响项目自身的 EventListener 接收到回调。若不希望基调听云 SDK 设置 EventListener,可以通过 setOkhttpTcpListener() 方法关闭基调听云设置 EventListener。
- 相关接口
/**
* @param isSetListener 默认为 true,设置成 false 设置 EventListener
*/
NBSAppAgent.setOkhttpTcpListener(boolean isSetListener);
- 代码示例
public class MyApplication extends Application {
@Override
public void onCreate() {
NBSAppAgent.setLicenseKey("AppKey")
.setOkhttpTcpListener(false)// 在初始化 SDK 时调用接口,SDK 不设置 EventListener
.start(this.getApplicationContext());
}
}