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

Android客戶端Demo體驗(yàn)

更新時(shí)間:

本文為您介紹融合認(rèn)證功能Demo的運(yùn)行步驟及示例代碼,幫助您快速了解融合認(rèn)證功能。Android客戶端SDK集成的詳細(xì)接入步驟及用法,請(qǐng)參見融合認(rèn)證Android客戶端接入

步驟一:下載并解壓SDK

登錄號(hào)碼認(rèn)證產(chǎn)品控制臺(tái),在概覽頁面右側(cè)API&SDK區(qū)域,單擊立即下載,進(jìn)入API&SDK頁面,根據(jù)頁面提示下載并解壓對(duì)應(yīng)SDK。

步驟二:設(shè)置認(rèn)證方案和認(rèn)證策略

創(chuàng)建認(rèn)證方案

登錄號(hào)碼認(rèn)證服務(wù)控制臺(tái)創(chuàng)建融合認(rèn)證方案,在方案列表界面獲取方案Code

綁定認(rèn)證策略

登錄號(hào)碼認(rèn)證服務(wù)控制臺(tái),選擇融合認(rèn)證服務(wù) > 認(rèn)證策略設(shè)置 > 方案策略,將方案與場(chǎng)景進(jìn)行關(guān)聯(lián)。

步驟三:打開Demo項(xiàng)目

使用Android Studio IDE,選擇打開已有項(xiàng)目,選擇到Demo文件夾項(xiàng)目載入過程會(huì)拉取相關(guān)依賴,請(qǐng)耐心等待。

重要

本文使用Android Studio 4.0版本進(jìn)行演示。如果您使用的是其他的IDE版本,可能會(huì)存在構(gòu)建報(bào)錯(cuò),請(qǐng)按照提示修改對(duì)應(yīng)Gradle版本。使用工具和環(huán)境搭建相關(guān)可參考準(zhǔn)備工作

步驟四:選擇訪問模式

為方便用戶在服務(wù)端尚未搭建成功的情況下運(yùn)行Demo,阿里云在Demo中添加了快速訪問模式。在com.alicom.fusion.demo.Constant中設(shè)置TOKEN_MODEL的值即可使用不同的訪問模式。

  • TOKEN_MODEL:設(shè)置為1時(shí),為快速訪問模式。

  • TOKEN_MODEL:設(shè)置為2時(shí),為正常訪問模式(默認(rèn)為2,正常訪問模式)。

正常訪問模式

正常訪問模式需要接入融合認(rèn)證服務(wù)端和客戶端SDK,進(jìn)行正式調(diào)試并可以體驗(yàn)全部功能。

請(qǐng)先根據(jù)開發(fā)指南接入融合認(rèn)證服務(wù)端App Server,通過訪問App Server獲取鑒權(quán)Token,并通過訪問App Server做最終認(rèn)證結(jié)果校驗(yàn)。

  1. com.alicom.fusion.demo.Constant類中設(shè)置相關(guān)參數(shù)。

    • SCHEME_CODE:請(qǐng)?zhí)钊朐诳刂婆_(tái)已創(chuàng)建的方案Code。

    • NETURL:請(qǐng)?zhí)顚懹脩舴骄W(wǎng)絡(luò)服務(wù)地址。

    • GETAUTHREQUESTACTION:請(qǐng)?zhí)顚懹脩臬@取Token接口名稱。

    • VERIFYREQUESTACTION:請(qǐng)?zhí)顚懹脩魮Q號(hào)接口名稱。

  2. com.alicom.fusion.demo.net.HttpRequestUtil類中修改相關(guān)參數(shù)。

    獲取Token接口方法,用戶可將該方法替換成用戶方服務(wù)接口參數(shù),且該網(wǎng)絡(luò)請(qǐng)求使用了HttpURLConnection請(qǐng)求,根據(jù)用戶服務(wù)方環(huán)境可修改為HttpsURLConnection。image.pngToken換取手機(jī)號(hào)接口方法,用戶可將該方法替換成用戶方服務(wù)接口參數(shù),且該網(wǎng)絡(luò)請(qǐng)求使用了HttpURLConnection請(qǐng)求,根據(jù)用戶服務(wù)方環(huán)境可修改為HttpsURLConnection。image.png

快速訪問模式

快速訪問模式可暫不接入服務(wù)端API,適合快速調(diào)試Demo并體驗(yàn)基礎(chǔ)或部分功能。

  1. OpenAPI門戶填寫接口參數(shù)。參數(shù)詳情,請(qǐng)參見GetFusionAuthToken - 融合認(rèn)證獲取鑒權(quán)token

    說明
    • SchemeCode:請(qǐng)?zhí)顚懺诳刂婆_(tái)創(chuàng)建的方案Code

    • PackageName:請(qǐng)?jiān)?b>app/build.gradle文件android.defaultConfig.applicationId屬性查看包名。

    • PackageSign:包簽名,您可以通過手機(jī)終端下載并安裝Android App簽名獲取工具,獲取Android App的包簽名信息,便于認(rèn)證過程進(jìn)行鑒權(quán)。

  2. 單擊發(fā)起調(diào)用

  3. 調(diào)用結(jié)果頁,獲取臨時(shí)鑒權(quán)Token。image.png

  4. com.alicom.fusion.demo.Constant類中,進(jìn)行如下設(shè)置:

    • LOCAL_TOKEN:請(qǐng)?zhí)钊胍勋@取的臨時(shí)鑒權(quán)Token。

    • SCHEME_CODE:請(qǐng)?zhí)钊胍褎?chuàng)建的方案Code。

    • TOKEN_MODEL:請(qǐng)?zhí)?。

  5. Demo運(yùn)行完畢后,在AlicomFusionAuthCallBack回調(diào)的onVerifySuccess方法中獲取號(hào)碼校驗(yàn)Token,通過Token在控制臺(tái)進(jìn)行換號(hào)校驗(yàn)操作,可參見融合認(rèn)證服務(wù)端集成image.png

步驟五:構(gòu)建及運(yùn)行

  1. Android系統(tǒng)的手機(jī)連接到電腦上,打開開發(fā)者模式和開發(fā)者模式下的USB調(diào)試模式

  2. 點(diǎn)擊IDE頂部工具菜單image..png,構(gòu)建并運(yùn)行項(xiàng)目。

  3. 功能試用。

    說明

    確保您的終端設(shè)備已開啟SIM卡的移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)(支持中國聯(lián)通、中國移動(dòng)的3G網(wǎng)絡(luò),但接口耗時(shí)會(huì)增加)。

示例代碼

初始化SDK

mAlicomFusionBusiness = new AlicomFusionBusiness();

傳入Token

AlicomFusionAuthToken token=new AlicomFusionAuthToken();
        token.setAuthToken(GlobalInfoManager.getInstance().getToken());
        mAlicomFusionBusiness.initWithToken(GlobalInfoManager.getInstance().getContext(), Constant.SCHEME_CODE,token);

設(shè)置主流程回調(diào)AlicomFusionAuthCallBack

mAlicomFusionAuthCallBack = new AlicomFusionAuthCallBack() {
            @Override
            public AlicomFusionAuthToken onSDKTokenUpdate() {
                Log.d(TAG, "AlicomFusionAuthCallBack---onSDKTokenUpdate");
                AlicomFusionAuthToken token=new AlicomFusionAuthToken();
                CountDownLatch latch=new CountDownLatch(1);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        GlobalInfoManager.getInstance().setToken(HttpRequestUtil.getAuthToken(GlobalInfoManager.getInstance().getContext()));
                        latch.countDown();
                    }
                }).start();
                try {
                    latch.await();
                    token.setAuthToken(GlobalInfoManager.getInstance().getToken());
                } catch (InterruptedException e) {
                }
                return token;
            }

            @Override
            public void onSDKTokenAuthSuccess() {
                Log.d(TAG, "AlicomFusionAuthCallBack---onSDKTokenAuthSuccess");
                verifySuccess=true;
            }

            @Override
            public void onSDKTokenAuthFailure(AlicomFusionAuthToken token, AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onSDKTokenAuthFailure "+alicomFusionEvent.toString());
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Looper.prepare();
                        String token = HttpRequestUtil.getAuthToken(GlobalInfoManager.getInstance().getContext());
                        GlobalInfoManager.getInstance().setToken(token);
                        AlicomFusionAuthToken authToken=new AlicomFusionAuthToken();
                        authToken.setAuthToken(GlobalInfoManager.getInstance().getToken());
                        mAlicomFusionBusiness.updateToken(authToken);
                    }
                }).start();
            }

            @Override
            public void onVerifySuccess(String token, String s1, AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onVerifySuccess  " +token);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        String mobilNum = HttpRequestUtil.verifyToken(GlobalInfoManager.getInstance().getContext(), token);
                        updateBusiness(mobilNum,s1);
                    }
                }).start();
            }

            @Override
            public void onHalfWayVerifySuccess(String nodeName, String maskToken, AlicomFusionEvent alicomFusionEvent, HalfWayVerifyResult halfWayVerifyResult) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onHalfWayVerifySuccess  "+maskToken);
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        String result = HttpRequestUtil.verifyToken(GlobalInfoManager.getInstance().getContext(), maskToken);
                        updateBusinessHalfWay(result,halfWayVerifyResult,nodeName);
                    }
                }).start();
            }

            @Override
            public void onVerifyFailed(AlicomFusionEvent alicomFusionEvent, String s) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onVerifyFailed "+alicomFusionEvent.toString()());
                mAlicomFusionBusiness.continueSceneWithTemplateId("100001",false);
            }

            @Override
            public void onTemplateFinish(AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onTemplateFinish  "+alicomFusionEvent.toString());
                sum=0;
                mAlicomFusionBusiness.stopSceneWithTemplateId("100001");
            }

            @Override
            public void onAuthEvent(AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onAuthEvent"+alicomFusionEvent.toString());
            }

            @Override
            public String onGetPhoneNumberForVerification(String s, AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onGetPhoneNumberForVerification");
                return GlobalInfoManager.getInstance().getUserInfo();
            }

            @Override
            public void onVerifyInterrupt(AlicomFusionEvent alicomFusionEvent) {
                Log.d(TAG, "AlicomFusionAuthCallBack---onVerifyInterrupt"+alicomFusionEvent.toString());
            }
        };
        mAlicomFusionBusiness.setAlicomFusionAuthCallBack(mAlicomFusionAuthCallBack);

開始場(chǎng)景

mAlicomFusionBusiness.startSceneWithTemplateId(PersonalCenterFragment.this.getActivity(), "100001");

繼續(xù)場(chǎng)景

mAlicomFusionBusiness.continueSceneWithTemplateId("100001",false);

結(jié)束場(chǎng)景

mAlicomFusionBusiness.stopSceneWithTemplateId("100001");

銷毀SDK

mAlicomFusionBusiness.destory();