本文较长,阅读大概十五分钟
来自@谭妥的投稿
前言
人车不符
1.RFID识别验证功能:在司机证件或者车内识别硬件嵌入RFID识别芯片,乘客使用手机读取到芯片信息,并且通过网络发送到出行平台数据库进行验证(我用JNI加了一个C语言的MD5加密算法对识别到的信息进行了加密)。如果不是合规的“人”或“车”,则不能完成订单并向平台或监管单位汇报当前位置。(为了方便读者测试,可以使用手机读取任何一个加密或非加密RFID芯片,比如银行卡、公交卡等,我在代码中的验证前阶段把芯片信息都换成我自己的司机信息,确保读者测试时可以收到服务器的回复)
2. 海外版功能:点击切换当前语言。
3. 司机证件号码识别功能:读取司机证件上的证件号码,也可以用来与出行平台数据库的接单司机信息进行。
https://github.com/18601949127
开发环境
1.Android端:AndroidStudio版本3.4,百度地图LBS版本5.3 , OpenCV4Android 版本3.2
2.服务器端: Apache + PHP + MySQL 用的是我自己租的腾讯云主机做服务器,会一直开放出这个项目的接口,接受并处理读者发来的测试请求。
主界面概览
https://blog.csdn.net/weixin_37734988/article/details/92852349
项目文件结构
Activity 文件夹:有的Activity 相对独立,并不属于某个功能模块,可以放到这个文件夹。
adapter 文件夹:相对复杂一点的adapter会从类文件中取出单独保存到 adapter文件夹,比如左侧侧滑菜单中 recycler view的adapter。简单一点的adapter还是会保存在调用的类中。
Bean 文件夹: 存放Entity 实体类,比如司机的相关信息会包装成一个DriverBean,每个司机都是一个类对象,使用Gson 传递很方便,用的时候get,set 就可以。
DriverLicenseNFC 文件夹:RFID识别验证模块,乘客使用这个功能模块验证司机身份或者车辆信息。
DriverLicenseRecognition 文件夹:司机证件号码OCR识别的功能模块。
splash 文件夹:app 初始化和引导界面。
TabFragment:主界面上方的滑动主题条用来切换交通工具或者服务项目(Tab),不同的交通工具或者服务项目代码都保存在TabFragment 文件夹里。
utils 文件夹: 用来保存项目用到的各种工具类,比如DriverRouteOverlay 用来在地图上渲染规划出来的驾车路线,MD5JniUtils 用NDK调用MD5加密算法,保护RFID芯片信息,NfcUtils 用来管理手机的NFC功能,POIOverlay 用来在地图上渲染周围兴趣点(POI)。