安卓端人脸识别,蓝牙传输
- 开机之后从远端下载本机器对应的人脸图片,初步使用账号密码确定登陆的设备
- 识别出结果后,将结果同步返回到远程数据库,同时使用蓝牙发送信号
- 登陆
- 检查本地是否存有token,如果有,直接跳过登陆界面
- 返回该账号token,存储在本地。
- 同步人脸数据
- 建立本地数据库,避免每次开机都要重新初始化
- 使用哈希值判断图片是否有更新
- 主页面
- 蓝牙连接
- 正常识别
- 设置
- 蓝牙连接
- 可以跳过连接
- 正常启动
- 结果同步蓝牙传输本地设备与网络数据库
- 网络返回数据时候携带token
- 设置页面
- 包括重新初始化数据库
- 设置识别度
- 蓝牙重新连接
- 退出登陆
- 记录页面
- 查看目前本地数据
- 查看识别结果记录
本地数据库
- image
Id image_id name fea hashcode 字段id值(自增) 图片对应远端数据库的id(主要用这个字段判断获取的人脸) 名字 特征值 哈希值(用来判断图片是否更新)
- 两个输入框(输入账号和密码), 一个按钮(点击登陆)
- 网络请求获取token,存储在本地
sharePreferences
中
- 从网络获取本账号对应的图片的id以及hashcode
- 和本地数据库比对,拿出对应id,比对hashcode
- hashcode相等,把该字段对应的name和fea拿出来保存在map中
- hashcode不等,或者找不到该id,网络请求获取该id对应的图片到本地进行初始化
- 等待该账号下所有需要同步的照片同步完毕,进入主页面
提示蓝牙是否连接 展示三个btn:
- 进行蓝牙连接
- 进行识别
- 进行设置
- 获取蓝牙权限
- 使用RecyclerView或者ListView展示搜索到的蓝牙设备
- 用户点击开始连接
- 获取摄像头权限
- 进入正常识别流程
- 结果展示(展示过程中进行蓝牙传输和网络请求)
Retrofit
或者Okhttp
发送与请求网络接口
- 本地列表
- 用户可以向左滑删除该用户数据(同步网络删除请求)
- 识别记录
- 默认展示该设备所有记录
- 用户可以选择成功列表或者陌生人列表以及日期
日期 | 问题描述 | 是否解决 | 方案 |
---|---|---|---|
2021-6-18 | 登陆界面,用户输入账号时,如果按退,当没有内容可以退的时候会触发页面的退出,导致整个软件退出 | 修复 | 重写onBackProcess(),对用户返回操作进行监听 |