Android端使用NFC获取物理卡号
Activity使用NFC
一、声明全局变量
声明全局变量:PendingIntent 和 NfcAdapter
PendingIntent 说明:PendingIntent可以看作是对Intent的一个封装,但它不是立刻执行某个行为,而是满足某些条件或触发某些事件后才执行指定的行为。
PendingIntent详解:https://blog.csdn.net/hudashi/article/details/7060837
private PendingIntent pendingIntent;//Nfc适配器private NfcAdapter nfcAdapter;
二、给NFC适配器赋值
在onCreate方法中对nfcAdapter 进行赋值。
nfcAdapter.isEnabled()返回值为false时表示NFC未启动。
nfcAdapter = NfcAdapter.getDefaultAdapter(this);if (nfcAdapter != null&&nfcAdapter.isEnabled()){pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);}
三、NFC的前台调度
在onResume方法中启用
Enable foreground dispatch to the given Activity.
启用对给定Activity的前台调度。
@Overrideprotected void onResume() {super.onResume();if (nfcAdapter != null&&nfcAdapter.isEnabled()) {if (pendingIntent ==null){pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);}nfcAdapter.enableForegroundDispatch(this, pendingIntent, null, null);}}
在onPause方法中禁用
Disable foreground dispatch to the given activity.
禁用对给定Activity的前台调度。
@Overrideprotected void onPause() {super.onPause();if (null != nfcAdapter&&nfcAdapter.isEnabled()) {nfcAdapter.disableForegroundDispatch(this);}}
三、NFC刷卡事件处理
在onNewIntent方法中获取NFC调度事件
@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);String action = intent.getAction();if (!EmptyUtil.isEmpty(action)){if (NfcAdapter.ACTION_TECH_DISCOVERED.equalsIgnoreCase(action) || NfcAdapter.ACTION_TAG_DISCOVERED.equalsIgnoreCase(action) || NfcAdapter.ACTION_NDEF_DISCOVERED.equalsIgnoreCase(action)) {try {Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);MifareClassic mifareClassic = MifareClassic.get(tag);if (mifareClassic!=null) {mifareClassic.connect();if (!mifareClassic.isConnected()){Log.w(TAG,"卡连接失败");return;}//获取卡的物理卡号String CardId=StringUtil.byteToHex(mifareClassicard.getTag().getId());Log.i(TAG,CardId);}} catch (Exception e) {e.printStackTrace();}}}}
四、注意事项
在项目的AndroidManifest.xml 文件添加对NFC硬件的使用权限。
<!--外部存储读取权限--><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!--外部存储写入权限--><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!--允许设备访问NFC硬件--><uses-permission android:name="android.permission.NFC" />
有问题处,还请指出感激不尽。
参考资料:
https://blog.csdn.net/qq_36135335/article/details/82463179
https://blog.csdn.net/hudashi/article/details/7060837
https://developer.android.google.cn/reference/android/nfc/NfcAdapter
Android端使用NFC获取物理卡号相关推荐
- android 7.1 RIL 获取SIM卡号
平台 RK3288 + Android 7.1 + EC20 流程 获取手机号代码: TelephonyManager telMgr = (TelephonyManager) getSystemSer ...
- IC卡卡号修改软件,UID卡CUID卡物理卡号修改软件操作演示
普通IC卡的卡号是唯一的,也是锁死的,无法修改,而UID卡和CUID卡的物理卡号是可以修改的,一些考勤等用户需要修改卡片的卡号. 一般考勤等使用的卡号是10进制的,软件支持写入10进制卡号和16进制卡 ...
- C#使用读卡器读取身份证信息(包含物理卡号)
说明:本人用的是精伦身份证阅读器idr210 免驱 摘要:目前市面上读取身份证技术已经很成熟了,大多数文章都介绍了读取身份证的详细信息,但是这些信息里并不包含身份证的物理卡号,所以本文讲解的重点在读取 ...
- 用C#进行北斗串口编程之一:获取北斗卡号
北斗卫星导航系统(以下简称北斗系统,英文缩写BDS),是中国着眼于国家安全和经济社会发展需要,自主建设运行的全球卫星导航系统,是为全球用户提供全天候.全天时.高精度的定位.导航和授时服务的国家重要时空 ...
- android学习笔记之——获取SD卡及手机ROM容量
继续android学习之旅,今天通过一个小例子,来获取SD卡的容量和手机ROM的容量,具体代码如下: package com.urovo.sdcardspace;import java.io.File ...
- 获取SIM卡号(IMSI)
又到一周周未时,该写博客了,但想了一下,突然发现这周什么也没干,也不知道写什么,最后突然在桌面上发现了这段代码,获取IMSI用的,也就拿这东东来写写吧,赶快写完得玩会游戏,游戏时间又到了,Dota-- ...
- Android双卡手机:获取主卡副卡的simid(上)方案实现
原文地址:http://blog.csdn.net/ymcl_hx/article/details/53484797 近期公司下发了新任务,需要对Android手机进行双sim卡的管控,而这个功能的关 ...
- android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...
我很抱歉,如果这原来是一个愚蠢的问题,它可能会成为一个快速修复,但我只是无法弄清楚.我在android studio中创建了音乐播放器,并且没有任何sdcard上的歌曲不会显示在列表视图中,只有内部内 ...
- 扫描NFC卡,获取卡号存储到本地并可以以Excel形式导出数据
这是一个使用支持NFC的手机扫描NFC射频卡获取到卡号,使用greenDao数据库做本地存储,扫完之后可以将数据以Excel表格形式导出查看数据.不是什么新技术,内容比较简单,这里就主要贴源码了,没有 ...
最新文章
- 【视频】V4L2之ioctl
- [IE]微软发布IE9预览版- 建议Web开发者开始研究SVG
- 产品经理的知识结构是什么
- Codeforce1311B. WeirdSort (冒泡排序)
- python中函数的参数传递
- DTCC参会归来有感
- 正态分布假设检验相关知识
- 给table表格加斜线
- 3分钟打动投资人:商业计划书篇
- 【攻略】2014年跨境进口型电商十大模式盘点
- OpenSSL爆出严重bug漏洞 Heartbleed bug CVE-2014-0160
- 3.21 refused bequest
- ## Android Studio 开发(四)--蓝牙通信
- 最佳 Maya 免费建模插件!
- mac 桌面分屏软件_6款好用的Mac分屏软件推荐
- 张一鸣打造“抖音”等现象级产品的秘密:技术深度融合业务,引爆产品创新!
- 手撕鸭腌料批发场 新奥尔良烤肉腌料批发 奥尔良鸡叉骨腌料批发
- 学C++和嵌入式,未来发展好不好?
- matlab abc dq,关于matlab及pscad中abc2dq模块的使用.doc
- 什么是web前端驻场开发,费用怎么样