[Android]Android開啟芝麻信用人臉識別和結(jié)果回調(diào)

在完成調(diào)用芝麻信用人臉識別的時候,有一些可以記錄下來的內(nèi)容

/**
* 啟動支付寶進(jìn)行認(rèn)證
* @param url 開放平臺返回的URL
*/private void doVerify(String url) {
    if (hasApplication()) {
        Intent action = new Intent(Intent.ACTION_VIEW);
        StringBuilder builder = new StringBuilder();
      // 這里使用固定appid 20000067
        builder.append("alipays://platformapi/startapp?appId=20000067&url=");
        builder.append(URLEncoder.encode(url));
        action.setData(Uri.parse(builder.toString()));
        startActivity(action);
    } else {
        // 處理沒有安裝支付寶的情況
        new AlertDialog.Builder(this)
            .setMessage("是否下載并安裝支付寶完成認(rèn)證?")
            .setPositiveButton("好的", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Intent action = new Intent(Intent.ACTION_VIEW);
                action.setData(Uri.parse("https://m.alipay.com"));
                startActivity(action);
            }
        }).setNegativeButton("算了", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        }).show();
    }
}

/**
* 判斷是否安裝了支付寶
* @return true 為已經(jīng)安裝
*/private boolean hasApplication() {
    PackageManager manager = getPackageManager();
    Intent action = new Intent(Intent.ACTION_VIEW);
    action.setData(Uri.parse("alipays://"));
    List list = manager.queryIntentActivities(action, PackageManager.GET_RESOLVED_FILTER);
    return list != null && list.size() > 0;
}

此處是通過服務(wù)端返回的url,給到芝麻信用官方給的調(diào)用支付寶人臉識別的方法,但是此處的url中包含認(rèn)證成功或者失敗之后回調(diào)的地址,其實這邊不能叫回調(diào),相當(dāng)于H5打開app的那種鏈接URL Scheme
URL Scheme 當(dāng)前頁面發(fā)送出去的給支付寶的消息,支付寶如何回復(fù)?然后回復(fù)還能到達(dá)指定界面呢?
在需要調(diào)用芝麻信用人臉的頁面,在AndroidManifest中配置

  <!--要想在別的App上能成功調(diào)起App驾凶,必須添加intent過濾器-->
            <intent-filter>
                <!--協(xié)議部分领曼,隨便設(shè)置-->
                <data android:scheme="xl" android:host="goods" android:path="/goodsDetail" android:port="8888"/>
                <!--下面這幾行也必須得設(shè)置-->
                <category android:name="android.intent.category.DEFAULT"/>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.BROWSABLE"/>
            </intent-filter>
android:exported="false"
與
<action android:name="android.intent.action.VIEW"/>
沖突,所以不能設(shè)置
android:exported="false"

設(shè)置完成之后,在請求后端得到url中,需要將改革設(shè)置好的scheme信息發(fā)送給后臺,如果自己拼也要記得給,拼成的結(jié)果是xl://goods:8888/goodsDetail?goodsId=10011002,其中一直到goodsId之前的內(nèi)容都是在配置文件中配置的內(nèi)容,goodsId是自己定義的,在認(rèn)證成功或者失敗之后,通過自定義 goodsId去獲取數(shù)據(jù),方法如下:

Uri data = getIntent().getData();
String goodsId = data.getQueryParameter("goodsId");

會得到下面數(shù)據(jù):

params=YFK2tv7LqO05yH3sYA3XGSzUiEPDuWPk9AuAvT7ufMLscnDtqeSIATBRqZQgPw1dbxzJOCTbXEyCpizTa7hdFqB2FMo6o%2F1hDFjPyHIdkIFEv13Sj8PfCtcN2szcGeJDxmbsN2XoYgadDBFXBg5Y4F2CA4lKeksdotSKAnymaMc%3D&sign=By1D32vhk0QmewDQYQK50dwHtNv73Tdio7PPd%2FvjJJWKhhNCA2kl3hchApqDib4LlLDtDEOQxxLBKujiepjbmQN%2F2N2PNj9lJLluKnpBVEpTMvKbPLhn3opFmbdky%2F9Esj%2BuJRd8HENykCUsUKHXlYpSZKma7K%2F9%2FuTRY2sU%2FPY%3D      

返回的數(shù)據(jù)需要后端解析,才能得出認(rèn)證的結(jié)果.
最后幾個小問題
1.在設(shè)置intent-filter中的data的時候,如果是放在app的入口Activity上,host和scheme的首字母要小寫,不然會出現(xiàn)app圖標(biāo)找不到的情況
2.如何判斷一個Scheme是否有效

PackageManager packageManager = getPackageManager();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("xl://goods:8888/goodsDetail?goodsId=10011002"));
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isValid = !activities.isEmpty();
if (isValid) {
    startActivity(intent);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子们童,更是在濱河造成了極大的恐慌嘀倒,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桨嫁,死亡現(xiàn)場離奇詭異贰军,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蟹肘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門词疼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人帘腹,你說我怎么就攤上這事贰盗。” “怎么了阳欲?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵舵盈,是天一觀的道長陋率。 經(jīng)常有香客問我,道長秽晚,這世上最難降的妖魔是什么瓦糟? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮赴蝇,結(jié)果婚禮上菩浙,老公的妹妹穿的比我還像新娘。我一直安慰自己句伶,他們只是感情好劲蜻,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著考余,像睡著了一般先嬉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上楚堤,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天疫蔓,我揣著相機(jī)與錄音,去河邊找鬼钾军。 笑死鳄袍,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吏恭。 我是一名探鬼主播拗小,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼樱哼!你這毒婦竟也來了哀九?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤搅幅,失蹤者是張志新(化名)和其女友劉穎阅束,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茄唐,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡息裸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了沪编。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呼盆。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蚁廓,靈堂內(nèi)的尸體忽然破棺而出访圃,到底是詐尸還是另有隱情,我是刑警寧澤相嵌,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布腿时,位于F島的核電站况脆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏批糟。R本人自食惡果不足惜格了,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望跃赚。 院中可真熱鬧笆搓,春花似錦、人聲如沸纬傲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽叹括。三九已至算墨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汁雷,已是汗流浹背净嘀。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留侠讯,地道東北人挖藏。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像厢漩,于是被迫代替她去往敵國和親膜眠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容