当前位置: 首页 > news >正文

flutter指纹识别

 


一  : 引入local_auth: ^0.6.1

二  :  添加权限Androidmanifest.xml 

   <uses-permission android:name="android.permission.USE_FINGERPRINT"/>

三:修改主题

android:theme="@style/Theme.AppCompat"

四 : 代码展示以及汉化(注意需要最新的flutter_sdk)

import 'package:flutter/material.dart';
import 'package:local_auth/local_auth.dart';
import 'package:local_auth/auth_strings.dart';

void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {

  @override
  Widget build(BuildContext context) {
    var localAuth = LocalAuthentication();

    return Scaffold(
      appBar: AppBar(
        title: Text("指纹识别认证演示"),
      ),
      body:Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                RaisedButton(
                    onPressed: ()async {
                      try{
                        bool canCheckBiometrics =
                        await localAuth.canCheckBiometrics;
                           print(canCheckBiometrics);
                      }catch(e){
                        print(e);
                      }
                    },
                     child: Text("检测是否支持生物识别"),
                ),
                  SizedBox(height: 30),
                  RaisedButton(
                    onPressed: () async{
                         try{
                           List<BiometricType> availableBiometrics =
                           await localAuth.getAvailableBiometrics();
                           print(availableBiometrics);
                         }catch(e){
                           print(e);
                         }

                    },
                     child: Text("获取生物识别技术列表"),
                ),
                SizedBox(height: 30),
                RaisedButton(
                  onPressed: () async{
                    //下面是汉化
                    const andStrings = const AndroidAuthMessages(
                      cancelButton: '取消',
                      goToSettingsButton: '去设置',
                      fingerprintNotRecognized: '指纹识别失败',
                      goToSettingsDescription: '请设置指纹.',
                      fingerprintHint: '指纹',
                      fingerprintSuccess: '指纹识别成功',
                      signInTitle: '指纹验证',
                      fingerprintRequiredTitle: '请先录入指纹!',
                    );

                    try {
                      bool didAuthenticate =
                      await localAuth.authenticateWithBiometrics(
                          localizedReason:
                          '扫描指纹进行身份识别',
                          useErrorDialogs: false,
                          stickyAuth: true,
                          androidAuthStrings: andStrings
                      );
                      print(didAuthenticate);
                    } catch (e) {
                      print(e);
                    }

                  },
                  child: Text("指纹生物识别"),
                )
              ],
            ),
      )
 
    );
  }
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CC++中,typedef与#define
  • node搭建直播服务器流
  • flutter使用dio上传图片到阿里云Oss存储
  • sizeof终极无惑
  • uniapp图片上传
  • 电子游戏发展史话——《doom启示录》读后感(三)
  • $GOPATH/go.mod exists but should not goland
  • const用法小结(原创)
  • uniapp上传图片和视频到OSS
  • 华为一道排序题
  • fiber框架token校验
  • uniapp导出excel
  • 华为2004年招收应届大学毕业生技术支持面试题。
  • go语言中的指针(一)
  • 华为面试题
  • CentOS6 编译安装 redis-3.2.3
  • codis proxy处理流程
  • JS实现简单的MVC模式开发小游戏
  • LeetCode18.四数之和 JavaScript
  • Meteor的表单提交:Form
  • mysql外键的使用
  • Redis中的lru算法实现
  • Swift 中的尾递归和蹦床
  • tweak 支持第三方库
  • vuex 笔记整理
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 基于游标的分页接口实现
  • 技术发展面试
  • 携程小程序初体验
  • 一、python与pycharm的安装
  • 一个JAVA程序员成长之路分享
  • 智能合约开发环境搭建及Hello World合约
  • 2017年360最后一道编程题
  • Android开发者必备:推荐一款助力开发的开源APP
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • ######## golang各章节终篇索引 ########
  • #pragam once 和 #ifndef 预编译头
  • #Spring-boot高级
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • %check_box% in rails :coditions={:has_many , :through}
  • (160)时序收敛--->(10)时序收敛十
  • (2)STL算法之元素计数
  • (27)4.8 习题课
  • (3)选择元素——(17)练习(Exercises)
  • (libusb) usb口自动刷新
  • (十一)手动添加用户和文件的特殊权限
  • (学习日记)2024.01.09
  • (转)关于多人操作数据的处理策略
  • .NET 8.0 发布到 IIS
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET Core 中的路径问题
  • .net 程序发生了一个不可捕获的异常