手机自带nfc功能,可用手机对m1卡进行读写,当nfc卡片贴近手机,activity需要通过onNewIntent来接收来着nfc卡片的内容,所以对m1格式nfc卡片的读写方法都是在onNewIntent中进行的,下面是读写的代码:

//重写onNewIntent方法

public void onNewIntent(Intent intent){

read(intent);//读操作

write(intent);//写操作

super.onNewIntent(inttent);

//读取m1卡数据

public void read(Intent intent){

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
boolean auth = false;
MifareClassic mifareClassic = MifareClassic.get(tag);
try {
String nfcInfo = "";
mifareClassic.connect();
int sectorCount=mifareClassic.getSectorCount();//获取m1卡扇区数,一般m1卡扇区数为16
byte bytes[]=new byte[1024*8];
int count=0;

//0扇区为m1卡id,不可更改,从1扇区读取
for (int i = 1; i <sectorCount ; i++) {
auth=mifareClassic.authenticateSectorWithKeyA(i,MifareClassic.KEY_DEFAULT);//用默认密码验证i块,正确可读数据
if (auth){

//每个扇区0-2块存储数据,3块为控制块
for (int j = 0; j <3; j++) {
byte[] data=mifareClassic.readBlock(i*4+j);
for (int k = 0; k < data.length; k++) {
bytes[count++]=data[k];
}
}
}
}
nfcInfo+=new String(bytes,"UTF-8");//转换为字符串
if (nfcInfo==null||nfcInfo.equals(""))
{
Toast.makeText(this,"读取失败",Toast.LENGTH_LONG).show();
}else{

Toast.makeText(this,"数据:"+nfcInfo,Toast.LENGTH_LONG).show();

}
}catch (Exception e)
{
e.printStackTrace();
}

}

//写入数据

public void write(INtent intent){

Tag tagFormIntent=intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        MifareClassic mifareClassic=MifareClassic.get(tagFormIntent);

//验证1块,验证正确可写入

if (mifareClassic.authenticateSectorWithKeyA(1,MifareClassic.KEY_DEFAULT)){

mifareClassic.writeBlock(4,"1234".getBytes("UTF-8"));//数据写入1扇区4块中,写入数据必须是16字节,自己补全数据

}

}

android m1卡读写相关推荐

  1. c语言读写nfc,Android NFC M1卡读写芯片卡读写(CPU卡读写)(RFID读写)

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/sgn5200/article/deta ...

  2. m1卡读写c语言,Android NFC(一) M1卡读写

    原料:Android 带NFC功能手机.M1卡 怕你们没耐心先上demo 1.在AndroidManifest中添加权限控制 activity中需要添加 android:resource=" ...

  3. android sd卡 读写文件系统,安卓10写入和读取sdcard文件

    从target=29开始,要想读取sdcard中的文件,通过Environment.getExternalStoreage读取sdcard文件的方式已经行不通了. 当然,官方提供了一种缓解策略,在ap ...

  4. sdhc 读写 扇区 linux,SD卡读写扇区注意事项(转)

    在调试SD卡时,大家都喜欢使用扇区进行验证.也就是说,一般都是通过读写扇区数据进行比较,或者读取第0扇区的数据,在通过WinHex软件打开启动扇区进行比较.这种方法对于1G的SD卡或部分2G的SD卡可 ...

  5. Android nfc模块读写MifareClassic卡50

     http://3y.uu456.com/bp_8mhvy4gizz721et5ih0i_1.html 一般来说,基于MifareClassic的射频卡:1K:16个分区(sector),每个分区 ...

  6. VFP读写MifareOne IC卡 M1卡

    M1卡无疑是目前市场上使用范围最广.发卡量最多的射频感应卡,使用NXP S50芯片的进口卡.使用复旦微 F08芯片的国产卡是其中2种最具代表性的M1卡.M1卡有以下特性: 1.分为16个扇区,每个扇区 ...

  7. android 6.0 sd卡读写权限,Android 6.0 读写SD卡权限问题

    一.问题描述## Android 6.0 下默认存储SD卡,使用原生FMRadio生成的文件保存到内部存储中 [预置条件]插入T卡[操作步骤]设置>存储设备和USB>选择SD卡为默认存储& ...

  8. java做的web系统 m1 读卡器 结合_IE浏览器接入IC卡读写器实现M1卡的读写功能

    基于ActiveX技术的ocx控件是实现网页上读写 IC卡的一个比较不错的方法,因为ocx是com组件,通过其发布的接口,IE可以实现所有的功能.ActiveX不仅能适应大部分编程语言,做到与编程语言 ...

  9. android 读写cpu卡,RAM/CPU和SD卡读写性能提升_联想 K860i_手机Android频道-中关村在线...

    RAM\CPU和SD卡读写性能提升 AnTuTu(超级兔子) 超级兔子系统评测AnTuTu Benchmark是一个专门给Android系统的手机.平板电脑硬件跑分的软件,它能一键运行完整测试项目,通 ...

最新文章

  1. android圆形旋转菜单,而对于移动转换功能支持
  2. ThinkPHP的标签制作
  3. 简单介绍Tomcat中catalina.out 和 catalina.log的区别和用途
  4. oracle查询orapw文件,oracle学习笔记《一》
  5. python画父子关系图_将有父子关系的一维数组转换成树形结构(多维)数据
  6. oracle数据库函数手册,Oracle分析函数参考手册(转)
  7. 第三十二章 elk(3)- broker架构 + 引入logback
  8. oracle学习总结一(基础)
  9. yum更新php版本,yum安装的php升级到7.0版本
  10. 吾爱IC社区知识星球问答精选
  11. 经典数字电路 设计案例
  12. 【JZOJ】1183:【入门】判断是否构成三角形
  13. PPT画图-颜色搭配
  14. 全民wa矿小程序源码
  15. scala 读取txt文件(从文件读取)
  16. 运放的基本应用电路-运放电路设计-运算放大器的基本应用电路
  17. matlab getprmdflt,DFLT40A-7中文资料
  18. html调整上下的间距,html上下间距怎么调
  19. MapReduce理解-深入理解MapReduce
  20. 如何在小内存主机上搭建博客

热门文章

  1. soul群聊派对显示服务器异常,Soul群聊派对玩法攻略
  2. 用计算机弹EXO简谱,Power钢琴简谱-数字双手-EXO
  3. mate7 android 6 root权限管理,华为Mate7 Root权限怎么获取 华为Mate7 Root权限获取教程【详解】...
  4. 2021国防科技大学计算机学院无军籍考研经验贴
  5. h5应用数据加密_在线视频加密用H5加密方案有哪些优点?
  6. C++:C++11的牛逼特性
  7. t6UFO资产负债表
  8. adb查看手机设备型号、品牌、机型等信息
  9. JDO持久 (jdbc ejb)
  10. [转载]如何用JDO开发数据库应用(3)