首页

Android 指纹识别 示例源码

java

2020-6-28

package com.zwh.rxfingerprinter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import rx.Subscriber;
import rx.Subscription;
import zwh.com.lib.FPerException;
import zwh.com.lib.RxFingerPrinter;

public class MainActivity extends AppCompatActivity {

    private FingerPrinterView fingerPrinterView;
    private int fingerErrorNum = 0; // 指纹错误次数
    RxFingerPrinter rxfingerPrinter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fingerPrinterView = (FingerPrinterView) findViewById(R.id.fpv);
        fingerPrinterView.setOnStateChangedListener(new FingerPrinterView.OnStateChangedListener() {
            @Override public void onChange(int state) {
                if (state == FingerPrinterView.STATE_CORRECT_PWD) {
                    fingerErrorNum = 0;
                    Toast.makeText(MainActivity.this, "指纹识别成功", Toast.LENGTH_SHORT).show();
                }
                if (state == FingerPrinterView.STATE_WRONG_PWD) {
                    Toast.makeText(MainActivity.this, "指纹识别失败,还剩"   (5-fingerErrorNum)   "次机会",
                            Toast.LENGTH_SHORT).show();
                    fingerPrinterView.setState(FingerPrinterView.STATE_NO_SCANING);
                }
            }
        });
        rxfingerPrinter = new RxFingerPrinter(this);
        findViewById(R.id.btn_open).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                fingerErrorNum = 0;
                rxfingerPrinter.unSubscribe(this);
                Subscription subscription = rxfingerPrinter.begin().subscribe(new Subscriber<Boolean>() {
                    @Override
                    public void onStart() {
                        super.onStart();
                        if (fingerPrinterView.getState() == FingerPrinterView.STATE_SCANING) {
                            return;
                        } else if (fingerPrinterView.getState() == FingerPrinterView.STATE_CORRECT_PWD
                                || fingerPrinterView.getState() == FingerPrinterView.STATE_WRONG_PWD) {
                            fingerPrinterView.setState(FingerPrinterView.STATE_NO_SCANING);
                        } else {
                            fingerPrinterView.setState(FingerPrinterView.STATE_SCANING);
                        }
                    }

                    @Override
                    public void onCompleted() {

                    }

                    @Override
                    public void onError(Throwable e) {
                        if(e instanceof FPerException){
                            Toast.makeText(MainActivity.this,((FPerException) e).getDisplayMessage(),Toast.LENGTH_SHORT).show();
                        }
                    }

                    @Override
                    public void onNext(Boolean aBoolean) {
                        if(aBoolean){
                            fingerPrinterView.setState(FingerPrinterView.STATE_CORRECT_PWD);
                        }else{
                            fingerErrorNum  ;
                            fingerPrinterView.setState(FingerPrinterView.STATE_WRONG_PWD);
                        }
                    }
                });
                rxfingerPrinter.addSubscription(this,subscription);
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        rxfingerPrinter.unSubscribe(this);
    }
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
RxFingerPrinter-master/.gitignore , 118
RxFingerPrinter-master/README.md , 3181
RxFingerPrinter-master/app/.gitignore , 7
RxFingerPrinter-master/app/build.gradle , 958
RxFingerPrinter-master/app/proguard-rules.pro , 679
RxFingerPrinter-master/app/src/androidTest/java/com/zwh/rxfingerprinter/ExampleInstrumentedTest.java , 750
RxFingerPrinter-master/app/src/main/AndroidManifest.xml , 663
RxFingerPrinter-master/app/src/main/java/com/zwh/rxfingerprinter/FingerPrinterView.java , 8811
RxFingerPrinter-master/app/src/main/java/com/zwh/rxfingerprinter/MainActivity.java , 3686
RxFingerPrinter-master/app/src/main/res/drawable-xhdpi/finger_green.png , 4680
RxFingerPrinter-master/app/src/main/res/drawable-xhdpi/finger_grey.png , 4683
RxFingerPrinter-master/app/src/main/res/drawable-xhdpi/finger_red.png , 4753
RxFingerPrinter-master/app/src/main/res/layout/activity_main.xml , 1572
RxFingerPrinter-master/app/src/main/res/mipmap-hdpi/ic_launcher.png , 3418
RxFingerPrinter-master/app/src/main/res/mipmap-mdpi/ic_launcher.png , 2206
RxFingerPrinter-master/app/src/main/res/mipmap-xhdpi/ic_launcher.png , 4842
RxFingerPrinter-master/app/src/main/res/mipmap-xxhdpi/ic_launcher.png , 7718
RxFingerPrinter-master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png , 10486
RxFingerPrinter-master/app/src/main/res/values-w820dp/dimens.xml , 358
RxFingerPrinter-master/app/src/main/res/values/colors.xml , 208
RxFingerPrinter-master/app/src/main/res/values/dimens.xml , 211
RxFingerPrinter-master/app/src/main/res/values/strings.xml , 78
RxFingerPrinter-master/app/src/main/res/values/styles.xml , 383
RxFingerPrinter-master/app/src/test/java/com/zwh/rxfingerprinter/ExampleUnitTest.java , 401
RxFingerPrinter-master/build.gradle , 498
RxFingerPrinter-master/gif/ScreenShot.gif , 181072
RxFingerPrinter-master/gradle.properties , 730
RxFingerPrinter-master/gradle/wrapper/gradle-wrapper.jar , 53636
RxFingerPrinter-master/gradle/wrapper/gradle-wrapper.properties , 233
RxFingerPrinter-master/gradlew , 4971
RxFingerPrinter-master/gradlew.bat , 2314
RxFingerPrinter-master/lib/.gitignore , 7
RxFingerPrinter-master/lib/build.gradle , 905
RxFingerPrinter-master/lib/proguard-rules.pro , 679
RxFingerPrinter-master/lib/src/androidTest/java/zwh/com/lib/ExampleInstrumentedTest.java , 731
RxFingerPrinter-master/lib/src/main/AndroidManifest.xml , 313
RxFingerPrinter-master/lib/src/main/java/zwh/com/lib/CodeException.java , 1020
RxFingerPrinter-master/lib/src/main/java/zwh/com/lib/FPerException.java , 1756
RxFingerPrinter-master/lib/src/main/java/zwh/com/lib/RxFingerPrinter.java , 6250
RxFingerPrinter-master/lib/src/main/res/values/strings.xml , 66
RxFingerPrinter-master/lib/src/test/java/zwh/com/lib/ExampleUnitTest.java , 389
RxFingerPrinter-master/settings.gradle , 23
说明.htm , 4317
没有账号? 忘记密码?

社交账号快速登录