NFC读取写⼊简单使⽤
NFC读取写⼊简单使⽤
适⽤于⽆加密普通NFC卡⽚数据读取写⼊
/**
*读取NFC数据
*/
publicstaticStringreadNfcData(Intentintent){
Stringtext="";
if(_NDEF_(ion())){
Parcelable[]rawMsgs=celableArrayExtra(_NDEF_MESSAGES);
NdefMessagemsgs[]=null;
if(rawMsgs!=null){
msgs=newNdefMessage[];
for(inti=0;i<;i++){
msgs[i]=(NdefMessage)rawMsgs[i];
}
}
try{
if(msgs!=null){
NdefRecordrecord=msgs[0].getRecords()[0];
text=parTextRecord(record);
}
}catch(Exceptione){
tackTrace();
}
}
returntext;
}
/**
*写⼊NFC数据
*/
publicstaticbooleanwriteNfc(NdefMessagendefMessage,Tagtag){
try{
Ndefndef=(tag);
if(ndef!=null){
t();
booleanisWritable=able();
intmaxSize=Size();
intmsgLength=Array().length;
if(!isWritable||maxSize
returnfal;
}
defMessage(ndefMessage);
();
}el{
NdefFormatableformatable=(tag);
if(formatable!=null){
t();
(ndefMessage);
();
}
}
returntrue;
}catch(Exceptione){
tackTrace();
}
returnfal;
}
publicstaticNdefRecordcreateTextRecord(Stringtext){
byte[]langBytes=guage().getBytes(e("US-ASCII"));
byte[]langBytes=guage().getBytes(e("US-ASCII"));
ChartutfEncoding=e("UTF-8");
byte[]textBytes=es(utfEncoding);
intutfBit=0;
charstatus=(char)(utfBit+);
byte[]data=newbyte[1++];
data[0]=(byte)status;
opy(langBytes,0,data,1,);
opy(textBytes,0,data,1+,);
NdefRecordndefRecord=newNdefRecord(_WELL_KNOWN,_TEXT,newbyte[0],data);
returnndefRecord;
}
publicstaticStringparTextRecord(NdefRecordndefRecord){
//判断TNF
if(()!=_WELL_KNOWN){
returnnull;
}
//判断可变的长度的类型
if(!(e(),_TEXT)){
returnnull;
}
try{
//获得字节数组,然后进⾏分析
byte[]payload=load();
//下⾯开始NDEF⽂本数据第⼀个字节,状态字节
//判断⽂本是基于UTF-8还是UTF-16的,取第⼀个字节"位与"上16进制的80,16进制的80也就是最⾼位是1,
//其他位都是0,所以进⾏"位与"运算后就会保留最⾼位
StringtextEncoding=((payload[0]&0x80)==0)?"UTF-8":"UTF-16";
//3f最⾼两位是0,第六位是1,所以进⾏"位与"运算后获得第六位
intlanguageCodeLength=payload[0]&0x3f;
//下⾯开始NDEF⽂本数据第⼆个字节,语⾔编码
//获得语⾔编码
StringlanguageCode=newString(payload,1,languageCodeLength,"US-ASCII");
//下⾯开始NDEF⽂本数据后⾯的字节,解析出⽂本
StringtextRecord=newString(payload,languageCodeLength+1,-languageCodeLength-1,textEncoding);
returntextRecord;
}catch(Exceptione){
thrownewIllegalArgumentException();
}
}
本文发布于:2023-03-14 17:19:41,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678785583249916.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:nfc如何使用.doc
本文 PDF 下载地址:nfc如何使用.pdf
留言与评论(共有 0 条评论) |