NFC技术:读写非NDEF格式的数据

  1 //向nfc标签读写MifareUltraligh格式的数据
  2 public class MainActivity extends Activity {
  3     private CheckBox mwriteData;
  4     private NfcAdapter mNfcAdapter;
  5     private PendingIntent mPendingIntent;
  6
  7     @Override
  8     protected void onCreate(Bundle savedInstanceState) {
  9         super.onCreate(savedInstanceState);
 10         setContentView(R.layout.fragment_main);
 11
 12         mwriteData = (CheckBox) findViewById(R.id.checkBox1);
 13         mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
 14         mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
 15                 getClass()), 0);
 16     }
 17
 18     @Override
 19     protected void onNewIntent(Intent intent) {
 20         // TODO Auto-generated method stub
 21         super.onNewIntent(intent);
 22         Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
 23
 24         String[] techList = tag.getTechList();
 25         boolean haveMifareUltralight = false;
 26         for (String tech : techList) {
 27             if (tech.indexOf("MifareUltralight") >= 0) {
 28                 haveMifareUltralight = true;
 29                 break;
 30             }
 31
 32         }
 33         if (!haveMifareUltralight) {
 34             Toast.makeText(this, "不支持MifareUltralight格式数据", 0).show();
 35             return;
 36         }
 37         // 选中为写数据
 38         if (mwriteData.isChecked()) {
 39             writeTag(tag);
 40
 41         }
 42         // 否则为读数据
 43         else {
 44             String data = readTag(tag);
 45             if (data != null) {
 46                 Toast.makeText(this, data, 0).show();
 47             }
 48         }
 49
 50     }
 51
 52     @Override
 53     protected void onResume() {
 54         // TODO Auto-generated method stub
 55         super.onResume();
 56         if (mNfcAdapter != null) {
 57             mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null,
 58                     null);
 59         }
 60     }
 61
 62     @Override
 63     protected void onPause() {
 64         // TODO Auto-generated method stub
 65         super.onPause();
 66         if (mNfcAdapter != null) {
 67             mNfcAdapter.disableForegroundDispatch(this);
 68         }
 69     }
 70
 71     // 向nfc标签写MifareUltralight格式数据
 72     public void writeTag(Tag tag) {
 73         MifareUltralight ultralight = MifareUltralight.get(tag);
 74         try {
 75             ultralight.connect();
 76             ultralight.writePage(4, "中国".getBytes(Charset.forName("GB2312")));
 77             ultralight.writePage(5, "美国".getBytes(Charset.forName("GB2312")));
 78             ultralight.writePage(6, "韩国".getBytes(Charset.forName("GB2312")));
 79             ultralight.writePage(7, "日本".getBytes(Charset.forName("GB2312")));
 80
 81             Toast.makeText(this, "写入MifareUltralight格式数据成功", 0).show();
 82         } catch (Exception e) {
 83             // TODO: handle exception
 84         } finally {
 85             try {
 86                 ultralight.close();
 87             } catch (IOException e) {
 88                 // TODO Auto-generated catch block
 89                 e.printStackTrace();
 90             }
 91         }
 92     }
 93
 94     public String readTag(Tag tag) {
 95         MifareUltralight ultralight = MifareUltralight.get(tag);
 96         try {
 97             ultralight.connect();
 98             byte[] data = ultralight.readPages(4);
 99             return new String(data, Charset.forName("GB2312"));
100
101         } catch (Exception e) {
102             // TODO: handle exception
103         } finally {
104
105             try {
106                 ultralight.close();
107             } catch (IOException e) {
108                 // TODO Auto-generated catch block
109                 e.printStackTrace();
110             }
111
112         }
113         return null;
114
115     }
116 }
时间: 2024-11-25 11:44:09

NFC技术:读写非NDEF格式的数据的相关文章

13、NFC技术:读写非NDEF格式的数据

MifareUltralight数据格式 将NFC标签的存储区域分为16个页,每一个页可以存储4个字节,一个可存储64个字节(512位).页码从0开始(0至15).前4页(0至3)存储了NFC标签相关的信息(如NFC标签的序列号.控制位等).从第5页开始存储实际的数据(4至15页). 读写MifareUltralight数据 使用MifareUltralight.get方法获取MifareUltralight对象,然后调用MifareUltralight.connect方法进行连接,并使用Mif

NFC之非NDEF格式

先看流程图 使用步骤: 第一步:声明权限 <!-- 允许应用程序使用NFC功能 --> <uses-permission android:name="android.permission.NFC" /> 第二步:Activity设置能拦截的NFC tag,不需要拦截ACTION_NDEF_DISCOVERED类型的NDEF标签,标题说了拦截非NDEF的tag <activity android:name="com.example.nfcdemo.

axios接收非utf-8格式json数据

由于历史原因,项目主体是GBK格式,但是axios默认设置的接收utf-8格式,导致中文乱码. 下面是解决方案,可以全局设置如下 axios.interceptors.request.use(function (request) { request['headers']['common']['Accept'] = 'application/json;charset=GBK;'; return request; }, function (error) { return Promise.reject

android nfc中Ndef格式的读写

检测到标签后在Activity中的处理流程 1. 在onCreate()中获取NfcAdapter对象: NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this); 2.在onNewIntent()中获取Tag对象或者NdefMessage信息: 获取Tag对象: Tag tag = intent.getParcelableExra(NfcAdapter.EXTRA_TAG); 获取NdefMessage信息: Parcelable[]

volley post非json格式数据并获取json数据

在使用JsonObjectRequest时无法post非json格式的数据,因而采用StringRequest获取到相应的数据后再转为json格式的数据. //这里的上下文需要讨论 private static RequestQueue mRequestQueue = Volley.newRequestQueue(Global.getContext()); public interface IResponse{ void subscribeData(Object data); } /**Post

6、Android中的NFC技术

Android对NFC技术的支持 Android2.3.1(API Level = 9)开始支持NFC技术,但Android2.x和Android3.x对NFC的支持非常有限.而从Android4.0(API Level = 14)开始,Google开始向NFC发力,NFC技术在Android中得到了更进一步的支持.尤其是Android4.1,可以利用NFC技术传递较大的数据(NFC会利用蓝牙技术进行大数据量的传输). NFC标签 不同的NFC标签之间差异很大,有的非常简单,只支持简单的读写操作

7、NFC技术:让Android自动运行程序

用于描述NDEF格式数据的两个重要的类 NdefMessage:描述NDEF格式的信息 NdefRecord:描述NDEF信息的一个信息段  NdefMessage和NdefRecord是Android NFC技术的核心类,无论读写NDEF格式的NFC标签,还是通过Android Beam技术传递Ndef格式的数据,都需要这两个类. 向NFC标签写入数据的步骤 获取Tag对象 Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 判

2.非标准的NDEF格式数据解析--IsoDep

1.使用目的:正常开发是针对NDEF格式数据进行开发,但实际情况并非如此,以厦门公交卡为例,厦门公交卡保存的是非NDEF格式数据.其类型是IsoDep类型. 2.非标准的NDEF格式数据流程:当厦门公交卡放到NFC上时,手机会捕获该厦门公交卡标签信息,其中标签的数据将封装到Intent中,并启动相关的Activity处理该标签信息,判断该标签类型为IsoDep类型后,使用该IsoDep类对标签进行操作. NFC针对非标准的NDEF格式数据使用步骤: 1.获取NFC权限/添加Intent过滤器 2

11、NFC技术:NDEF Uri格式解析

NDEF Uri格式规范 与NDEF文本格式一样,存储在NFC标签中的Uri也有一定的格式 http://www.nfc-forum.org/specs/spec_dashboard 编写可以解析Uri格式数据的类 11.NFC技术:NDEF Uri格式解析