Android指紋密碼
使用場景以及方向
- 指紋解鎖豌研,在支持指紋識(shí)別的手機(jī)中搁嗓,幾乎每個(gè)支持指紋識(shí)別芯片的手機(jī)都支持指紋解鎖,這也是指紋識(shí)別在手機(jī)中應(yīng)用最多的場景了缰犁。在此基礎(chǔ)上,有些手機(jī)可以支持不同的手指進(jìn)入不同的桌面怖糊,有點(diǎn)類似Windows系統(tǒng)下多賬戶的意思帅容,不同的是,別人根本看不出來伍伤。在我們APP開發(fā)中并徘,如用戶的一些操作,例如業(yè)務(wù)審批扰魂,請(qǐng)假審批麦乞,報(bào)銷審批等一些需要對(duì)操作人員進(jìn)行身份認(rèn)證的項(xiàng)目
- 指紋支付,基于指紋識(shí)別技術(shù)劝评,蘋果姐直、三星、魅族蒋畜、ZUK等都推出了自家的支付解決方案声畏,在國內(nèi),iPhone的指紋識(shí)別已經(jīng)可以支持支付寶姻成、微信支付插龄,三星、魅族也是與支付寶進(jìn)行合作佣渴,ZUK雖然沒有公布具體的合作方,但已經(jīng)指出在為支付寶初斑、微信辛润、財(cái)付通等進(jìn)行調(diào)試。在我們APP開發(fā)中, p2p砂竖,消費(fèi)金融真椿,o2o,管理軟件等項(xiàng)目中涉及到的一些用戶操作乎澄,例如訂單確認(rèn)突硝,指紋付款,指紋還貸置济,查看薪資等涉及到需要對(duì)操作人員進(jìn)行身份認(rèn)證解恰,隱私安全類的項(xiàng)目
使用條件
- 手機(jī)是否支持指紋識(shí)別
- 手機(jī)是否錄入了指紋
核心代碼
-
BaseTools工具類,主要同于對(duì)是否能使用指紋密碼進(jìn)行的一些硬件檢測等
//android6.0以及以上的api @RequiresApi(api = Build.VERSION_CODES.M) public static boolean isFinger() { FingerprintManager manager; KeyguardManager mKeyManager; manager = (FingerprintManager) ExApplication.mContext.getSystemService(Context.FINGERPRINT_SERVICE); mKeyManager = (KeyguardManager) ExApplication.mContext.getSystemService(Context.KEYGUARD_SERVICE); //android studio 上浙于,沒有這個(gè)會(huì)報(bào)錯(cuò) if (ActivityCompat.checkSelfPermission( ExApplication.mContext, Manifest.permission.USE_FINGERPRINT) != PackageManager.PERMISSION_GRANTED) { return false; } //判斷手機(jī)硬件是否支持指紋識(shí)別护盈,如果不支持,那么則不能使用與指紋 有關(guān)的所有操作 if (!manager.isHardwareDetected()) { return false; } //判斷 是否開啟鎖屏密碼羞酗,可以提示用戶去設(shè)置指紋解鎖 if (!mKeyManager.isKeyguardSecure()) { return false; } //判斷是否有指紋錄入腐宋,可以提示用戶去設(shè)置指紋解鎖 if (!manager.hasEnrolledFingerprints()) { return false; } return true; }
-
zhiwen包是對(duì)于指紋密碼的封裝,FingerprintUiHelper只用于對(duì)指紋密碼業(yè)務(wù)的封裝所提供的主要接口
//識(shí)別失敗 @Override public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) { showError(helpString); } //識(shí)別失敗 @Override public void onAuthenticationFailed() { showError(mIcon.getResources().getString( “指紋無法識(shí)別檀轨。再試一次胸竞!”)); } //識(shí)別成功 @Override public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { mErrorTextView.removeCallbacks(mResetErrorTextRunnable); mIcon.setImageResource(R.drawable.ic_fingerprint_success); mErrorTextView.setTextColor( mErrorTextView.getResources().getColor(R.color.success_color, null)); mErrorTextView.setText( mErrorTextView.getResources().getString(R.string.pin_code_fingerprint_success)); mIcon.postDelayed(new Runnable() { @Override public void run() { mCallback.onAuthenticated(); } }, SUCCESS_DELAY_MILLIS); }
注意
- 1.在app開發(fā)中,指紋密碼無法得到任何標(biāo)識(shí)参萄,官方目前只提供指紋校驗(yàn)成功與失敗的方法
-
2.指紋密碼卫枝,不能存儲(chǔ)于自己的服務(wù)器,最多可以存儲(chǔ)該用戶是否啟用了指紋密碼識(shí)別功能拧揽。