Android接入

接入步骤

Android SDK接入分为如下步骤:

  • 嵌入SDK
  • init:初始化SDK
  • getToken:调用getToken接口获取token,每次调用返回不同的token值。一般由用户操作(提交等)来触发getToken,请注意:一个token只能使用一次,如果在同一个页面中,允许用户多次操作,请多次调用getToken接口以获取不同的token;
  • 提交token:将token作为请求参数提交到业务方后端。

嵌入SDK

嵌入SDK有如下步骤:

  • 导入SDK
  • 导入需要的ABI
  • 添加权限信息
  • 添加ProGuard配置
  • 导入watchman

导入SDK

SDK以aar形式发布,可使用在线方式导入,在build.gradle配置文件中添加如下配置(x.x.x表示版本号,请联系您的专属安全策略经理确认最新的版本号):

dependencies {
  compile 'com.netease.mobsec:netmobsecLib:x.x.x@aar'
}

导入需要的ABI

SDK提供了armeabi、armeabi-v7a、x86、x86_64、arm64-v8a五种ABI的支持,默认会导出这五种ABI。注意:

  • 如果产品本身不支持这么多ABI,就需要对最终导出的ABI进行过滤,不然会CRASH
  • 如果app只需要支持特定的ABI,比如armeabi,armeabi-v7a,x86三种,可以在build.gradle添加如下配置:
defaultConfig {
    applicationId "com.XX.XXX"
    minSdkVersion XX
    targetSdkVersion XX
    versionCode XX
    versionName "X.X.X"
    ndk {
        abiFilters "armeabi", "armeabi-v7a", "x86"
    }
}

添加权限信息

SDK需要在AndroidMenifest.xml文件中添加下列权限配置:

<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.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

注:若以aar形式接入,可不用在应用AndroidMenifest.xml中申明权限。

添加ProGuard配置

若使用ProGuard进行混淆,需要将SDK使用的类排除掉。若使用Android studio开发,则在proguard-rules.pro文件里添加如下信息:

-keep class com.netease.mobsec.**{*;}

导入类

在需要调用sdk接口的文件中,导入watchman:

import com.netease.mobsec.rjsb.watchman;

init接口

在项目Application类或者Activity类的onCreate或onStart()方法中调用init方法来初始化SDK,接口说明如下:

  • 调用方式:watchman.init(context, productNumber)
  • 接口描述:初始化SDK,采集数据并将数据提交到登录保护后台
  • 返回值:void
参数名类型是否必须作用
contextContext用于获取设备基本信息
productNumberString产品编号

getToken接口

getToken接口返回唯一凭证token,业务方客户端需要将此token提交到业务后端,业务后端再使用此token来check接口获取检测结果。

  • 调用方式:watchman.getToken(businessId) 或 watchman.getToken(businessId, timeout)
  • 接口描述:获取唯一凭证token,此接口是同步接口
  • 返回值:String
参数名类型是否必须作用
businessIdString业务id
timeoutint最长超时时间,单位秒。若没指定,则默认3s;timeout可设置范围为1~10秒

接入示例

在项目Application类或者主Activity类的onCreate()方法中初始化SDK。

import com.netease.mobsec.rjsb.watchman;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //初始化SDK
        watchman.init(getApplicationContext(), "your productNumber"); 
        // 业务代码   
    }
}

在需要登录保护的接口中,先获取登录保护Token,然后做其他相应的操作,比如:

public void rise() {
     // 获取登录保护查询token,使用默认延时3秒
     String token = watchman.getToken("your BusinessId");
     Map<String, String> params = new HashMap<String, String>();
     // 携带登录保护查询token
     params.put("token", token);
     params.put("username", username);
     params.put("password", password);
     // 点赞操作需要登录保护检查
     String riseResp = HttpClient4Utils.sendPost(httpClient, RISE_URL, params, Consts.UTF_8);
    // 处理点赞的响应
}
Online Chat Tel:95163223