日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

設備風險SDK Android接入

本文檔介紹了設備風險SDK(Android系統)的接入流程。

前提條件

  • 設備風險SDK需在Android 4.0.3+(minSdkVersion版本15+)以上版本的系統運行。

  • 為幫助落實針對您產品集成第三方SDK情況所應履行的隱私合規義務,降低隱私違規風險,進而實現您產品合規運營的業務目標,請您務必確保選用阿里云文檔中心官網發布的最新版本產品。在使用設備風險識別前,請您務必仔細了解個人信息處理規定及《風險識別SDK隱私權政策》,并按照設備風險識別SDK合規使用說明進行接入。

權限說明

為增強風險識別效果,當前SDK需要以下權限:

權限內容

是否必選

備注

android.permission.INTERNET

用于獲取網絡訪問權限

沒有該權限將導致SDK功能不可用。

android.permission.ACCESS_NETWORK_STATE

否(推薦賦予)

用于獲取設備網絡狀態信息。

android.permission.READ_PHONE_STATE

否(推薦賦予)

該部分權限在Android 6.0以上系統中需要動態獲取。

如果您要啟用相關權限,那么在接入設備風險SDK并調用信息采集接口之前,確保您的App已經被授予了相關權限。

android.permission.WRITE_EXTERNAL_STORAGE

否(推薦賦予)

android.permission.READ_EXTERNAL_STORAGE

否(推薦賦予)

下載和配置SDK

  1. 下載Android SDK,并完成解壓。SDK為Android標準的.aar包。

  2. 拷貝SDK的aar文件到工程的libs目錄下,并在App的build.gradle中添加以下依賴關系:

// 設備風險識別SDK
implementation files('libs/Android-AliyunDevice-版本號.aar')

// 三方網絡庫依賴
implementation 'com.squareup.okhttp3:okhttp:3.11.0'
implementation 'com.squareup.okio:okio:1.14.0'

注意:三方網絡庫不能省略,否則會造成設備風險識別SDK無法聯網。

信息采集

完成信息采集,在進行風險識別的時候,您需要在滿足合規要求下盡可能早的調用該函數 。

  • 函數原型

public interface SecurityInitListener {
    // code表示接口調用狀態碼
    void onInitFinish(int code);
}
public void initWithOptions(Context ctx, 
                 	String appKey, 
                	Map<String, String> options,
                 	SecurityInitListener securityInitListener);
  • 參數

    ctx:當前Application Context,或Activity Context。

    appKey:用于標識用戶身份,可在阿里云控制臺的設備App管理申請獲取。

    options:信息采集可選項,默認可以為null。可選參數如下

字段名

說明

示例

IPv6

是否使用IPv6域名上報設備信息。

默認為“0”:使用IPv4域名;

“1”:使用IPv6域名。

"1"

CustomUrl

設置自有數據上報服務器域名

"https://cloudauth-device.aliyuncs.com"

CustomHost

設置自有數據上報服務器host

"cloudauth-device.aliyuncs.com"

DataType

設置不采集敏感數據的類型。

默認為空:采集所有數據;

具體可配置數據如下表

單選:

''NO_UNIQUE_DEVICE_DATA''

多選:

''NO_UNIQUE_DEVICE_DATA|

NO_IDENTIFY_DEVICE_DATA''

敏感數據的類型

說明

設備信息字段詳情

NO_UNIQUE_DEVICE_DATA

可變更唯一設備標識碼

包括:OAID、Google廣告ID、Android ID

NO_IDENTIFY_DEVICE_DATA

不可變更唯一設備標識碼

包括:IMEI、IMSI、SimSerial、BuildSerial(SN)、MAC地址

NO_BASIC_DEVICE_

DATA

基礎標識信息

包括:設備名(Build.DEVICE)、Android版本號(Build.VERSION#RELEASE)、屏幕分辨率;

NO_EXTRA_DEVICE_

DATA

擴展敏感信息

包括:黑灰產App列表、局域網IP、DNS IP、連接的WIFI信息(SSID、BSSID)、附近WIFI列表、定位信息。

securityInitListener:設備風險SDK信息采集回調接口,可在回調中判斷信息采集是否成功。其中,code字段取值范圍可參考“狀態返回值”。

  • 返回值

    無。

獲取客戶端token

獲取客戶端token,并上報到業務服務器,后續通過服務器端設備風險識別事件及返回參數,從而獲取設備風險信息。

  • 函數原型

public class Securitytoken {
    // 接口調用狀態碼
    public int code;
    
    // 用于服務器端查詢結果的token字符串。
    public String token;
}

public Securitytoken getDevicetoken();
  • 返回值

    Securitytoken類型。

    code:返回接口調用狀態碼,用于判斷接口調用是否成功。code字段取值范圍可參考“狀態返回值”。

    token:返回客戶端token字符串信息,可用于業務后續查詢阿里云設備風險識別接口。

重要

1. getDevicetoken接口的調用可能會較為耗時,請確保在App的非主線程中調用此接口,以避免因長時間阻塞主線程而導致App出現無響應(ANR)的情 況,進而防止App崩潰。

2. 因數據上報可能存在延遲,請確保SDK的信息采集接口和getDevicetoken接口調用時間間隔2秒以上。

3. token字符串在網絡環境良好的場景下,長度為600字節左右;在網絡環境較差的場景下,返回的長度在2.5K左右。

狀態返回值

SecurityCode

Code

備注

SC_SUCCESS

10000

SDK信息采集成功

SC_NOT_INIT

10001

SDK未信息采集

SC_NOT_PERMISSION

10002

SDK需要的Android基礎權限未完全授權

SC_UNKNOWN_ERROR

10003

系統未知錯誤

SC_NETWORK_ERROR

10004

網絡錯誤

SC_NETWORK_ERROR_EMPTY

10005

網絡錯誤,返回內容為空串

SC_NETWORK_ERROR_INVALID

10006

網絡返回的格式非法

SC_PARSE_SRV_CFG_ERROR

10007

服務端配置解析失敗

SC_NETWORK_RET_CODE_ERROR

10008

網關返回失敗

SC_APPKEY_EMPTY

10009

AppKey為空

SC_PARAMS_ERROR

10010

其他參數錯誤

SC_FGKEY_ERROR

10011

密鑰計算錯誤

SC_APPKEY_ERROR

10012

SDK版本和AppKey版本不匹配

示例代碼

設備風險SDK信息采集,信息采集接口需要在滿足合規的要求下,盡可能早的時候調用。

其中,參數ALIYUN_APPKEY用于標識用戶身份,可在阿里云控制臺的設備App管理申請獲取。

您可以通過參數Option中DataType字段,用于配置采集的具體數據,滿足具體業務場景的隱私要求。

public class CustomApplication extends Application {
    private static String ALIYUN_APPKEY = "xxxx";

    @Override
    public void onCreate() {
        super.onCreate();

        //增加隱私數據采集開關,不采集NO_IDENTIFY_DEVICE_DATA類型數據,多選使用|進行拼接。且"(NO_IDENTIFY_DEVICE_DATA))"處輸入數據不可為空。
        Map<String, String> options = new HashMap<>();      
        options.put("DataType", String.valueOf(NO_IDENTIFY_DEVICE_DATA));
        
        // 通過設備風險SDK采集信息,信息采集接口需要在風險場景中盡可能早的時候調用。
        SecurityDevice.getInstance().initWithOptions(this, ALIYUN_APPKEY, options, null);
    }
}

在業務需要風險識別的場景下(如注冊、活動推廣等)獲取戶端token并上報到業務的服務器端。確保信息采集和getDevicetoken接口的調用間隔在2秒以上。

另外,getDevicetoken接口比較耗時,切勿在UI線程中調用。

new Thread() {
    @Override
    public void run() {
        Securitytoken st = SecurityDevice.getInstance().getDevicetoken();
        if(null != st){
            if(SecurityCode.SC_SUCCESS == st.code){
                Log.d("AliyunDevice", "token: " + st.token);

                // 發送token到業務自有服務器并查詢阿里云設備風險識別接口。
                // sendToAPPServer(st.token);
            } else {
                Log.e("AliyunDevice", "getDevicetoken error, code: " + st.code);
            }
        } else {
            Log.e("AliyunDevice", "getDevicetoken is null.");
        }
    }
}.start();

接口混淆配置

-keep class net.security.device.api.** {*;}
-dontwarn net.security.device.api.**

調用風險識別API接口

devicetoken與其他參數,根據如下相應的風險識別服務事件參數文檔說明,請求風險識別API進行識別:

注冊風險識別功能及參數說明

營銷風險識別功能及參數說明

登錄風險識別功能及參數說明

設備風險識別事件及返回參數

常見問題答疑

1. 設備風險識別SDK支付哪些架構?

目前支持arm、armv7和arm64三個架構。

2. SDK的大小是多少?

單架構的SO文件在1.8M左右。

設備風險識別SDK為了保證自身的抗逆向性以及數據在網絡傳輸過程中的安全性,SDK中有大量的插花、膨脹及加解密操作,所以SDK體積會相對較大。