Android pay是Android支付統一的標準,Android 6.0 系統集成了Android pay ,其特性簡潔.安全.可選性,雖然許多手機廠商Android手機支持了指紋功能,
但是這些手機都使用了非谷歌認證的技術.這次谷歌提供了指紋識別,統一了技術方案. 這也是爲啥6.0以下都有指紋功能 ,Android指紋識別API沒有識別的原因.
import android.app.KeyguardManager;
import android.os.Build;
import android.support.v4.hardware.fingerprint.FingerprintManagerCompat;
import android.support.v4.os.CancellationSignal;
import com.zlzf.zlzfcpay.MyApp;
public class FingerprintUtil {
public static CancellationSignal cancellationSignal;
public static void callFingerPrint(final OnCallBackListenr listener){
FingerprintManagerCompat managerCompat = FingerprintManagerCompat.from(MyApp.context);
if (!managerCompat.isHardwareDetected()){ //判斷設備是否支持
if (listener != null)
listener.onSupportFailed();
return;
}
KeyguardManager keyguardManager =(KeyguardManager)MyApp.context.getSystemService(MyApp.context.KEYGUARD_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
if (!keyguardManager.isKeyguardSecure()) {//判斷設備是否處於安全保護中
if (listener != null)
listener.onInsecurity();
return;
}
}
if (!managerCompat.hasEnrolledFingerprints()){ //判斷設備是否已經註冊過指紋
if (listener != null)
listener.onEnrollFailed(); //未註冊
return;
}
if (listener != null)
listener.onAuthenticationStart(); //開始指紋識別
cancellationSignal = new CancellationSignal(); //必須重新實例化,否則cancel 過一次就不能再使用了
managerCompat.authenticate(null,0,cancellationSignal,new FingerprintManagerCompat.AuthenticationCallback(){
// 當出現錯誤的時候回調此函數,比如多次嘗試都失敗了的時候,errString是錯誤信息,比如華爲的提示就是:嘗試次數過多,請稍後再試。
@Override
public void onAuthenticationError(int errMsgId, CharSequence errString) {
if (listener != null)
listener.onAuthenticationError(errMsgId ,errString );
}
// 當指紋驗證失敗的時候會回調此函數,失敗之後允許多次嘗試,失敗次數過多會停止響應一段時間然後再停止sensor的工作
@Override
public void onAuthenticationFailed() {
if (listener != null)
listener.onAuthenticationFailed();
}
@Override
public void onAuthenticationHelp(int helpMsgId, CharSequence helpString) {
if (listener != null)
listener.onAuthenticationHelp(helpMsgId,helpString);
}
// 當驗證的指紋成功時會回調此函數,然後不再監聽指紋sensor
@Override
public void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result) {
if (listener != null)
listener.onAuthenticationSucceeded(result);
}
;
},null);
}
public interface OnCallBackListenr{
void onSupportFailed();
void onInsecurity();
void onEnrollFailed();
void onAuthenticationStart();
void onAuthenticationError(int errMsgId, CharSequence errString);
void onAuthenticationFailed();
void onAuthenticationHelp(int helpMsgId, CharSequence helpString);
void onAuthenticationSucceeded(FingerprintManagerCompat.AuthenticationResult result);
}
public static void cancel(){
if (cancellationSignal != null)
cancellationSignal.cancel();
}
}
Android pay 指紋
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.