Android 集成阿里雲 人臉識別

Android 集成阿里雲 人臉識別 

Android集成官方文檔:https://help.aliyun.com/document_detail/127598.html?spm=a2c4g.11186623.6.564.583c5f3e1BgoXP

集成步驟:

1,申請相關賬號,並且將項目簽名打包成apk上傳後下載相應的sdk;(注意,爲了方便測試 最好debug包 和release包通用一個簽名文件)

 signingConfigs {
        def alias = "key"
        def password = "you password"
        def filePath = "D://xx/MLKey.jks"

        debug {
            keyAlias alias
            keyPassword password
            storeFile file(filePath)
            storePassword(password)
        }
        release {
            keyAlias alias
            keyPassword password
            storeFile file(filePath)
            storePassword(password)
        }

    }

2,下載的sdk裏包括一張驗證圖片,放置於項目res->drawble文件夾下 ;

3,將下載文件裏的AAR文件複製到工程JNILib目錄,如果項目本身集成有okhttp等,不要複製過來

其中fastjson也必須要(畢竟阿里親兒子),windvane爲webview 文件,必須要;

4,so文件複製到jniLibs文件夾,根據自己項目情況選擇對應cpu架構;

5,app gradle文件設置()

 

android{
    ...
}
repositories {
    flatDir {
        dirs 'libs'
        //如果集成aar文件放置於子moudle  此處可以設置成 dirs '../yourModleName/libs'
    }
}
dependencies {
...
    implementation(name: 'rpsdk-4.0.4', ext: 'aar')
    implementation(name: 'oss-android-sdk-2.9.2', ext: 'aar')
    implementation(name: 'SecurityGuardSDK-external-release-5.4.193-preInstall', ext: 'aar')
    implementation(name: 'SecurityBodySDK-external-release-5.4.112-preInstall', ext: 'aar')
    implementation files('libs/fastjson-1.2.62.jar')
    implementation files('libs/windvane-min-8.0.3.2.3.jar')
}

 

6,調用

Apllication文件初始化:

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

        initAliFace();

    }

    private void initAliFace() {
        /**
         * 通過ALBiometricsConfig 自定義您的UI
         */
        ALBiometricsConfig.Builder alBiometricsConfig = new ALBiometricsConfig.Builder();
        alBiometricsConfig.setNeedSound(false);//默認是否開啓聲音
        alBiometricsConfig.transitionMode = TransitionMode.BOTTOM;//從下彈出
        CloudRealIdentityTrigger.initialize(this, true, alBiometricsConfig.build());//第二個參數是本地日誌能力(若打開 會記錄問題到本地,方便後期排查線上用戶問題)
    }

activity問調用(首先申請相機權限,這裏的token是後臺上傳識別圖片去阿里服務器後,回調獲得的)

private void openVerify(){
    CloudRealIdentityTrigger.startVerifyByNative(this, token, getALRealIdentityCallback());
}

    /**
     * 基礎回調的方式 TODO
     *
     * @return
     */
    private ALRealIdentityCallback getALRealIdentityCallback() {
        return (alRealIdentityResult, s) -> {
            //DO your things
            LogUtils.debugInfo("RPSDK", "ALRealIdentityResult:" +     
            alRealIdentityResult.audit);
            if (alRealIdentityResult.audit == 1) { //識別成功,是要對比的圖片
                userInfo.setCertification("2");
                mPresenter.updateSelfInfo(userInfo);
            } else {//識別失敗
                userInfo.setCertification("-1");
                mPresenter.updateSelfInfo(userInfo);
            }
        };
    }

AndroidManifest.xml

<manifest>
...
     <application>

...
      <!--    阿里雲識別    -->
        <activity         
        android:name="com.alibaba.security.biometrics.activity.ALBMiometricActivtiy"
            android:hardwareAccelerated="true"
            />
        <activity android:name="com.alibaba.security.rp.activity.RPTakePhotoActivity"
            android:screenOrientation="portrait"
            />
        <activity android:name="com.amap.api.navi.AmapRouteActivity"/>
        <activity android:name="com.alibaba.security.rp.activity.RPH5Activity"
            android:screenOrientation="portrait"
            />
    </application>

</manifest>

--------------------------------------------------------------------------------完成分割線--------------------------------------------------------------------------

總結:

如果遇到沒有錯誤的閃退,解決方法 :1.加上AndroidManifest的acitivity聲明

2.如果不行 降低gradle版本

#Fri Apr 03 17:37:12 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
buildscript {
    ext.kotlin_version = '1.3.61'
    repositories {
        google()
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
        jcenter()
    }

    dependencies {
//        classpath 'com.android.tools.build:gradle:3.6.2'
        classpath 'com.android.tools.build:gradle:3.3.1'
...
    }
...
}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章