Android下如何与读卡器进行交互
上两篇文章介绍了IC/ID卡的一些基本知识以及安卓下串口的开发,这篇文章将会介绍安卓下如何与读卡器进行交互,读取卡信息。
读卡器的类型:
根据卡的类型决定了读卡器也有多种类型,有IC卡的读卡器也有ID卡的读卡器,它们的区别在于读卡时的频率,除了读卡的频率不同,读卡器与上位机的通讯方式也有不同,本文只介绍三种读卡器读卡号的方式,分别是串口通讯读卡器,USB通讯读卡器以及网络读卡器。
串口通讯读卡器:
安卓设备可以通过监听某个串口与读卡器建立连接,数据包一般为十六进制,一般会有校验和进行包的完整性监测,这种读卡器有主动和被动之分,主动的会在读到卡号之后主动上传给上位机,在485通讯中,如果存在多个读卡器同时上传数据会有可能出现数据丢失问题。所以有了被动的方式,被动的读卡器读到卡号会先寄存在读卡器里面,等待上位机发指令然后进行数据上传,在等待的过程中读卡器不会进行新一轮的读卡,由于各个读卡器的数据上传和指令接收都是由上位机控制,所以被动的读卡器在并发时数据丢失的问题为少一些,但由于线路和干扰等原因,任何通讯方式都会存在数据丢失的可能,所以要做好超时和重试的逻辑判断。
USB读卡器:
这是一种最简单,成本最低的读卡器,读卡器只需要插入到设备的USB接口,然后打开一个输入框,刷一下卡,十进制的卡号便会自动填充到输入框,注意前提是这个输入框已获取到焦点,另外这种读卡器对window和mac等设备同样适用。
网络读卡器:
这种读卡器一般只需要上位机与下位机在同一个局域网,监听对应的网络端口便可以进行通讯,网络读卡器一般通过UDP/TCP的方式进行通讯,数据包一般为十六进制,不同读卡器的包的内容和格式会有所不同。需要注意的是UDP是不可夸网段通讯的,如果要夸网段需要用TCP。
Android下如何与读卡器进行交互相关推荐
- Android下的串口开发
一.前言 由于安卓的开源性以及可拓展性,近些年,Android在各种智能设备上的使用越来越多,如电视机.机顶盒.车载系统以及公交刷卡系统等等.在我们的认识中Android系统是手机系统,它的物理接口一 ...
- android webview调js方法,Android中WebView与H5的交互,Native与JS方法互调
项目中经常用到WebView与H5的交互,一个是H5调本地方法,一个是本地调H5方法,在此记录一下. 首先,启用JS支持 //启用js支持 webSettings.setJavaScriptEnabl ...
- Android TabLayout定制CustomView与ViewPager交互双向联动
Android TabLayout定制CustomView与ViewPager交互双向联动 我之前写了一些关于Android Material Design TabLayout的文章, (1)& ...
- Android 下拉刷新框架实现
前段时间项目中用到了下拉刷新功能,之前在网上也找到过类似的demo,但这些demo的质量参差不齐,用户体验也不好,接口设计也不行.最张没办法,终于忍不了了,自己就写了一个下拉刷新的框架,这个框架是一个 ...
- 高通android usb otg,Android OTG支持USB读卡器
我们知道,三星Android手机将USB读卡器通过OTG线插入Micro USB插口后,插拔读卡器里的SD卡,文件管理器也能够识别卡的插拔:而很多手机的OTG连上USB读卡器也来插拔SD卡,会发现文件 ...
- Android下音频的测试程序tinyalsa(录音,放音,查看声卡信息)
audio代码比较复杂,除了音频参数,我们平时客制化的地方不多.所以没有太深入了解. 建议先抽空看看如下代码: kernel, linux alsa 架构: kernel-3.10/sound/soc ...
- android 发送语音功能和ios交互格式aac
android 发送语音功能和ios交互格式aac 看到标题大家应该都知道了,本文主要实现android发送语音功能 前面几篇博客写的webSocket,notifaction和service,当然了 ...
- android下拉五级菜单联动
android下拉五级菜单联动 一.问题引出 本人是一个不擅长Android的开发的,但是这几天在做联通的一个服务器配件管理系统,做完B/S的又要写C/S的,老板要求没办法.在做的过程中遇到了一个下拉 ...
- Android下音频tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo)--------mark详细
Android下音频tinyalsa(tinymix/tinycap/tinyplay/tinypcminfo) 2017年05月29日 10:02:03 songze_lee 阅读数:10224更多 ...
最新文章
- Pycharm断点失效(不起作用),原来是matplotlib.pyplot.show()函数的原因
- 【转载】tkinter多线程防假死
- 对称密码的编程使用(DES、3DES、AES)
- 在Android命令行启动程序的方法
- 拒绝用户“root”@“localhost”的访问(使用密码:yes)_使用PHP和Github Webhook实现自动部署
- python源码剖析 豆瓣_在数据分析师的分析中豆瓣的书那些值得读
- string 方法 java_String 的几个 方法。 (java)
- 求最大子数组(贪心算法)
- Uniapp Android原生插件开发
- 中国第一家区块链形式化验证公司获种子轮投资
- 快速当前目录下打开cmd命令窗口
- 罗永浩是个挺能折腾的人
- 江苏省领航杯人工智能竞技人车协同赛项记录
- NBA数据的Echarts 数据分析图表
- matlab中isequal函数,MATLAB中的isequal函数的用法
- web工程师的自我修养
- 锐起无盘精华100问!(包括3.1,3.0版本)
- 批量抓取东方财富EastMoney的宏观经济数据
- R语言中dim函数_R语言中的方差分析方法汇总
- DHT11温湿度LCD显示
热门文章
- grid - gap
- 使用APICloud AVM框架开发人事档案管理助手APP
- 关于系统架构你不知道的那些事-架构设计流程:设计备选方案
- 程序员的忧桑:有人向你反馈了一个Bug!
- 怎么改锁定计算机的背景,电脑修改登录界面背景壁纸的操作方法
- python制作相册
- vue-路由篇页面跳转和页面参数传递
- OPA1612AIDR IC AUDIO 2 CIRCUIT 8SOIC
- linux 7 realm,系统运维|Samba 系列(十五):用 SSSD 和 Realm 集成 Ubuntu 到 Samba4 AD DC...
- 三十七、缓存注解@Cacheable、@CacheEvict、@CachePut详解