概述与资源
本文是 GeeGlance(先鉴) Android SDK 的部署文档,用于指导 Android 端 GeeGlance SDK 的集成,读者需具有一定 Android 编程知识基础。
1、环境需求
条目 | 资源 |
---|---|
开发环境 | Android Studio 2.1.3 |
Gradle 版本 | 3.3.0 以上 |
SDK 三方依赖 | 无 |
包增量 | 1.1M |
2、相关开发资料
条目 | 资源 |
---|---|
SDK 当前版本 | 1.2.0 |
准备工作
1、创建应用
登录极验后台创建注册账号获取商户 ID (MERCHANT_ID) , 创建应用配置包名包签名。
2、快速体验 Demo
Android 压缩包附带的 demo 文件夹中是极验的示例工程,使用 Android Studio 打开示例工程,直接运行起来即可进行快速体验测试。
如果开发者需要将 SDK 集成到自己的项目进行体验,可完成以下配置步骤进行本地测试:
将包名修改成对应的测试包名;
将签名配置改成您的签名配置;
将
MERCHANT_ID
换成您在极验管理后台注册时生成的商户 ID(需注意实际使用的应用包名、包签名要与后端创建的应用的信息一致);编译 demo 在手机上安装测试即可
3、开发环境搭建
导入 SDK 到项目工程并配置开发环境
在
sdk
目录下,将获取的.aar
文件拖拽到工程中的 libs 文件夹下。在拖入
.aar
到 libs 文件夹后,还要检查.aar
是否被添加到Library,要在项目的 build.gradle 下添加如下代码:repositories {
flatDir {
dirs 'libs'
}
}手动将aar包添加依赖:
implementation(name: 'geetest_glance_android_vx.y.z', ext: 'aar')
AndroidManifest.xml 权限配置
SDK 已默认配置必要的权限声明,正常情况下直接集成即可。
必要的权限包含:
<uses-permission android:name="android.permission.INTERNET" /> |
INTERNET
权限主要离线模型更新,权限校验,SDK 运行日志上报功能。
SDK 接入
1、调用逻辑
init
初始化 SDK 并配置MERCHANT_ID
创建场景配置
GlanceConfig
启动内容分析
match
,提取敏感内容并标记
2、初始化
- 初始化
init
SDK 初始化接口init
,可放在 Application
的 onCreate
方法中进行初始化。
方法描述
public GeeGlance init(Context context, String merchantId); |
参数说明
参数 | 类型 | 说明 |
---|---|---|
context | Context | 上下文 |
merchantId | String | 极验后台配置唯一商户IDMERCHANT_ID ,请在官网注册获取。 |
代码示例
GeeGlance |
3、创建场景配置 GlanceConfig
- 设置场景 key
setSenseKey
方法描述
设置场景 key, 在需要进行内容识别的地方配置,如果有多个场景需要用到内容识别,可以使用不同的场景 key 区分。
public GlanceConfig.Builder setSenseKey(String senseKey) |
参数说明
参数 | 类型 | 说明 |
---|---|---|
senseKey | String | 场景 key |
- 设置场景类型
setSenseType
方法描述
设置场景类型, 在需要进行内容识别的地方配置,如果有多个场景需要用到内容识别,可以根据实际情况使用不同的场景类型设置。
public GlanceConfig.Builder setSenseType(GlanceSenseType senseType) |
参数说明
参数 | 类型 | 说明 |
---|---|---|
senseType | GlanceSenseType | 场景类型(枚举类型) |
public enum GlanceSenseType { |
代码示例
GlanceConfig config = new GlanceConfig.Builder() |
4、启动内容分析
- 启动内容分析
match
方法描述
在需要提交文本内容的场景,如直播发弹幕、发表文章、发布评率等场景,提交之前调用 SDK 分析接口启动异步分析。
public void match(String content, GlanceConfig config, GlanceListener listener); |
参数说明
参数 | 类型 | 说明 |
---|---|---|
content | String | 待分析文本内容 |
config | GlanceConfig | 场景配置 |
listener | GlanceListener | 结果回调 |
代码示例
GeeGlance.with().match(text, config, new GeeGlance.GlanceListener() { |
控件接入
1、接入步骤
- 布局中添加内容识别控件
GlanceView
- 初始化控件并配置场景
- 绑定控件状态变化事件
2、布局中添加内容识别控件
内容识别控件GlanceView
集成自系统的EditText
,可以像添加普通EditText
一样添加GlanceView
到布局需要的位置
代码示例
<RelativeLayout |
3、初始化控件并配置场景
// 初始化控件 |
4、绑定控件状态变化事件
etInput.setViewListener(new GlanceView.GlanceViewListener() { |
其他接口说明
1、回调接口实现
通过实现GlanceListener
接口,通过它的多个回调可以判断是否有权限,是否配置正常,是否有识别到敏感结果,每次调用match
方法前必须先传入该接口的实现,否则不能正常回调返回结果。
1.1、结果返回
方法描述
启动内容分析后,SDK 内部进行异步分析,通过 onResult 回调发送返回结果到主线程。
public void onResult(GlanceResult result) |
结果示例
{ |
json 格式结果键值跟字段名称基本一致,只是命名风格的差异,如
task_id
对应taskId
字段,获取该字段值分别为:json格式:jsonResult.getString("task_id")
,对象格式:objResult.getTaskId()
;
参数说明
参数 | 类型 | 说明 |
---|---|---|
result | GlanceResult | 回调信息 |
jsonObject 的参数说明
GlanceResult
类型说明
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
status |
是 | String | 状态码,成功时状态码为"200" ,失败为"500" |
task_id |
是 | String | 当前识别的流水号 |
content |
是 | String | 当前识别输入的文本原文内容 |
items |
是 | ResultBean[] | 当前输入文本识别到的敏感词记录数组 |
client_type |
是 | String | 客户端类型,"Android" |
merchant_id |
是 | String | 商户 ID |
package_name |
是 | String | 应用包名 |
release |
是 | String | 系统版本号 |
model |
是 | String | 系统型号 |
msg |
是 | String | 失败时的错误信息 |
ResultBean
类型说明
参数名 | 必须 | 类型 | 说明 |
---|---|---|---|
keyword |
是 | String | 识别到的敏感词 |
risk_level |
是 | String | 敏感词风险等级 |
category |
是 | String | 敏感词类型 |
start |
是 | int | 敏感词在原始文本中的起始索引 |
end |
是 | int | 敏感词在原始文本中的结束索引 |
2、配置用户 ID
- 设置用户 ID
setUid
方法描述
设置用户 ID, 在需要进行内容识别的地方配置,后台统计用,可针对每个用户输出统计报表等。
public GeeGlance setUid(String uid) |
参数说明
参数 | 类型 | 说明 |
---|---|---|
uid | String | 用户 ID |
3、日志打印
- 日志打印控制
setLogEnable
方法描述
设置是否开启 SDK 日志打印功能,默认是开启的,开启后 SDK 运行过程中会打印以 Geetest_Glance 为 TAG 的 logcat 日志。正式上线应用可以调用该接口关闭日志。
public GeeGlance setLogEnable(boolean logEnable) |
参数说明
参数 | 类型 | 说明 |
---|---|---|
logEnable | boolean | 是否开启日志 |
代码示例
GeeGlance.with().setLogEnable(false); |
注:开启日志后,Release 模式也会打印 SDK 内日志
4、SDK 版本号
- 获取 SDK 版本号
sdkVersion
方法描述
获取 SDK 版本号
public String sdkVersion() |
代码示例
GeeGlance.with().sdkVersion() |