资源简介
支持Mifare卡(NFCA)和NFCB卡读写的demo。
1、 m1卡读写数据和修改控制位和秘钥都可以,增值减值可能是用的不对,没效果。http://download.csdn.net/detail/qust_lizhijun/9001243 链接是控制位的不同对于数据读写和控制位、密钥改写的影响。
2、二代证就是nfcb模式,然并卵,数据都是加密的,能读写也看不懂,所以只写了个接口使用方式。
代码片段和文件信息
package com.straw.nfcdemo;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.http.util.ByteArrayBuffer;
import android.app.Activity;
import android.content.Intent;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.MifareClassic;
import android.nfc.tech.NfcB;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.View.onclickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements onclickListener {
private TextView tv;
private Button readCardBtn addBtn minusBtn modifyBtn;
private MifareClassic mTag;
private NfcB nfcbTag;
private int flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initWidget();
onNewIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(intent.getAction())) {
tv.setText(“卡ID=“
+ ByteArrayToHexString(intent
.getByteArrayExtra(NfcAdapter.EXTRA_ID)));
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
String[] techList = tag.getTechList();
ArrayList list = new ArrayList();
for (String string : techList) {
list.add(string);
System.out.println(“tech=“ + string);
}
if (list.contains(“android.nfc.tech.NfcB“)) {
nfcbTag = NfcB.get(tag);
try {
nfcbTag.connect();
if (nfcbTag.isConnected()) {
System.out.println(“已连接“);
Toast.makeText(MainActivity.this “身份证已连接“
Toast.LENGTH_SHORT).show();
new CommandAsyncTask().execute();
}
// nfcbTag.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (list.contains(“android.nfc.tech.MifareClassic“)) {
mTag = MifareClassic.get(tag);
if (mTag != null) {
try {
mTag.connect();
if (mTag.isConnected()) {
System.out.println(“已连接“);
} else {
Toast.makeText(MainActivity.this “请贴卡后再操作“
Toast.LENGTH_SHORT).show();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (flag == 0) {
tv.setText(readTag(mTag));
} else if (flag == 1) {
addValue(mTag);
} else if (flag == 2) {
minusValue(mTag);
} else if (flag == 3) {
modifyControl(mTag);
}
}
}
}
private String ByteArrayToHexString(byte[] inarray) { // converts byte
// arrays to string
int i j in;
String[] hex = { “0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“ “A“
“B“ “C“ “D“ “E“ “F“ };
String out = ““;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 475 2015-08-17 10:12 NfcDemo\.classpath
文件 843 2015-07-25 09:12 NfcDemo\.project
文件 177 2015-07-25 09:12 NfcDemo\.settings\org.eclipse.jdt.core.prefs
文件 1371 2015-08-17 10:12 NfcDemo\AndroidManifest.xm
文件 51394 2015-07-25 09:12 NfcDemo\ic_launcher-web.png
文件 1184450 2015-07-25 09:12 NfcDemo\libs\android-support-v4.jar
文件 781 2015-07-25 09:12 NfcDemo\proguard-project.txt
文件 563 2015-07-25 09:13 NfcDemo\project.properties
文件 7658 2015-07-25 09:12 NfcDemo\res\drawable-hdpi\ic_launcher.png
文件 3777 2015-07-25 09:12 NfcDemo\res\drawable-mdpi\ic_launcher.png
文件 12516 2015-07-25 09:12 NfcDemo\res\drawable-xhdpi\ic_launcher.png
文件 24777 2015-07-25 09:12 NfcDemo\res\drawable-xxhdpi\ic_launcher.png
文件 1710 2015-08-14 10:13 NfcDemo\res\layout\activity_main.xm
文件 77 2015-07-25 09:12 NfcDemo\res\values\strings.xm
文件 330 2015-08-15 09:55 NfcDemo\res\xm
文件 12015 2015-08-17 10:12 NfcDemo\src\com\straw\nfcdemo\MainActivity.java
目录 0 2015-08-17 10:14 NfcDemo\src\com\straw\nfcdemo
目录 0 2015-08-17 10:14 NfcDemo\src\com\straw
目录 0 2015-08-17 10:14 NfcDemo\res\drawable-hdpi
目录 0 2015-07-25 09:12 NfcDemo\res\drawable-ldpi
目录 0 2015-08-17 10:14 NfcDemo\res\drawable-mdpi
目录 0 2015-08-17 10:14 NfcDemo\res\drawable-xhdpi
目录 0 2015-08-17 10:14 NfcDemo\res\drawable-xxhdpi
目录 0 2015-08-17 10:14 NfcDemo\res\layout
目录 0 2015-08-17 10:14 NfcDemo\res\values
目录 0 2015-08-17 10:14 NfcDemo\res\xm
目录 0 2015-08-17 10:14 NfcDemo\src\com
目录 0 2015-08-17 10:14 NfcDemo\.settings
目录 0 2015-07-25 09:12 NfcDemo\assets
目录 0 2015-08-17 10:14 NfcDemo\libs
............此处省略6个文件信息
- 上一篇:java开发工程师述职报告
- 下一篇:JAVA程序设计_具有发牌洗牌功能的纸牌游戏
相关资源
- Android 仿京东地址地区选择器 支持三
- 基于Andriod Stdio大学生兼职招聘APP
- 忍者突袭游戏Android源码
- Android端身份证识别
- Android开发实战经典
- android 身份证
- Android银联支付最新API和
- Android 仿淘宝2018添加地址
- Android代码-旅游app的安卓端
- Android小游戏144405
- android瘦身软件源代码
- 基于android,简单的股票行情小软件
- 高仿淘宝收货地址,内置全国各个省
- 每客兼职Android端
- android 批量插入联系人短信通话记录
- Android应用源码pad无线点餐项目源码
- android 论文
- android 24点游戏 源码
- android:简单计算器+源码+注释
- Android 炸弹人游戏
- 基于Android的手机通讯录
- Socket发送并接收服务器返回的数据
- Android 渗透测试学习手册 中文版
- 基本Android平台短信项目
- Android项目源码可做毕设的简单学生管
- Android移动应用设计与开发(第2版)
- 基于android短信平台的管理
- 疯狂Android讲义Kotlin版_李刚_2018-06-01
- 最新版ADB和Fastboot解决offline问题
- android ffmpeg+libx264+libx265
评论
共有 条评论