Andriod
概述与资源
Android SDK提供给集成Android原生客户端开发的开发者使用。
环境需求
条目 | 资源 |
---|---|
开发目标 | 4.0以上 |
开发环境 | Android Studio 3.0.1 |
系统依赖 | v7包 ,design包 |
sdk三方依赖 | 无 |
安装
获取SDK
导入SDK到项目工程并配置开发环境
在demo的
libs
包下,将获取的.aar
文件拖拽到工程中的libs文件夹下。在拖入
.aar
到libs文件夹后, 还要检查.aar
是否被添加到Library,要在项目的build.gradle下添加如下代码:repositories {
flatDir {
dirs 'libs'
}
}并且要手动将aar包添加依赖:
compile(name: 'geetest_deepknow_android_vx.y.z', ext: 'aar')
compile(name: 'geetest_sensebot_android_vx.y.z', ext: 'aar')添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />由于SDK会依赖 appcompat-v7处理额外的控件;需要添加下面依赖( 如果项目中已引入了 v7包,可以不添加 )
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support:design:25+'若Android studio 版本大于3.0,工程app中的build.gradle文件需要添加下述设置
packagingOptions{
doNotStrip "*/armeabi/libdeepknow-lib.so"
doNotStrip "*/armeabi-v7a/libdeepknow-lib.so"
doNotStrip "*/x86/libdeepknow-lib.so"
doNotStrip "*/arm64-v8a/libdeepknow-lib.so"
doNotStrip "*/x86_64/libdeepknow-lib.so"
}AS原生
proguard
混淆会导致打release包失败?此问题与android studio版本无关,是由于高版本的
gradle
插件导致的。在gradle
插件使用3.2.0以上,如不开启R8混淆器则会产生此问题,导致此问题的原因应该是加固使用的asm修改的class格式与新版d8编译器兼容性导致的。解决方式:在使用新版
gradle
插件(插件版本3.2.0以上)时,同时开启R8混淆器做混淆处理,或者使用低版本的gradle
插件版本(3.1.0以下)也可编译通过。R8普通模式是兼容
Proguard
的,若原项目里已使用了proguard
,在gradle.properties
文件里加上android.enableR8=true
即可。同时,R8也有完全模式,与
Proguard
不直接兼容,可以在gradle.properties
文件中设置android.enableR8.fullMode=true
即可。
代码示例
初始化与校验
初始化
在项目的在Application的onCreate
方法里面进行初始化(第二个参数传null即可)。
DPAPI.getInstance(this,null); |
并且在AndroidManifest
文件中声明这个Application
android:name=".MyApplication" |
在调用验证地方的onCreate
方法里面初始化
SEAPI seapi = new SEAPI(this); |
组装数据
在执行点击操作之前,对具体的控件进行操作:
//其中的第一个参数为具体的view,第二个参数为使用的activity的名字。 |
事件发生
在执行事件的时候,执行:
//其中的第一个参数为具体的所要填充的内容,第二个参数为回调。 |
接口实现
实现接口进行校验。
private BaseSEListener baseSEListener = new BaseSEListener() { |
输入参数实现
DPJudgementBean judgementBean=new DPJudgementBean(gtId,interactive,attr); |
参数说明
参数 | 类型 | 说明 | |
---|---|---|---|
gtId | String | deepknow id | |
interactive | int | 交互场景类型 | |
attr | Map |
冗余参数 |
全局事件发生
在全局执行事件的时候,执行:
//其中的参数为回调。 |
全局接口实现
实现接口进行校验。
private DpListener dpListener = new DpListener() { |
页面关闭
在页面关闭调用此方法
|
混淆规则
-dontwarn com.geetest.deepknow.** |
日志打印
SDK提供部分日志。
ErrorCode
geeguard errorcode
ErrorCode | Description |
---|---|
20001 | 具体的JudgementBean为null |
20002 | 传入的参数id为null |
20003 | 传入的参数idValue为null |
20004 | Judgement接口返回值为null |
20005 | Judgement接口返回值格式错误 |
20006 | Judgement接口请求错误 |
sensebot errorcode
ErrorCode | Description |
---|---|
10200 | 传入参数错误 |
10201 | webview加载错误 |
10202 | deepknow内部错误 |
10203 | SE内部错误 |
10204 | webview加载超时 |
10205 | webview内部错误 |
10206 | 产品类型错误 |
及时查看极验输出日志