import java.io.UnsupportedEncodingException;
import android.app.Activity;
import android.nfc.NdefMessage;
import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.os.Parcelable;
import android.widget.TextView;
public class MainActivity extends Activity {
NfcAdapter nfcAdapter;
TextView promt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
promt = (TextView) findViewById(R.id.promt);
nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter == null) {
promt.setText("This device doesn't support NFC!");
return;
}
if (!nfcAdapter.isEnabled()) {
promt.setText("Please you start NFC function on this device!");
return;
}
}
@Override
protected void onResume() {
super.onResume();
if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(getIntent().getAction()) || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())
|| NfcAdapter.ACTION_TECH_DISCOVERED.equals(getIntent().getAction())) {
byte[] bytesId = getIntent().getByteArrayExtra(NfcAdapter.EXTRA_ID);
String id = bytesToHexString(bytesId);
String result2 = "";
String languageCode = "";
Parcelable[] rawMsgs = getIntent().getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage[] msgs;
if (rawMsgs != null && rawMsgs.length > 0) {
msgs = new NdefMessage[rawMsgs.length];
for (int i = 0; i < rawMsgs.length; i++) {
msgs[i] = (NdefMessage) rawMsgs[i];
byte[] payload = msgs[i].getRecords()[0].getPayload();
String textEncoding = ((payload[0] & 0200) == 0) ? "UTF-8" : "UTF-16";
int languageCodeLength = payload[0] & 0077;
System.out.println("languageCodeLength == " + languageCodeLength);
try {
languageCode = new String(payload, 1, languageCodeLength, "US-ASCII");
result2 = new String(payload, languageCodeLength + 1, payload.length - languageCodeLength - 1, textEncoding);
System.out.println();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
promt.setText(id + ", " + result2 + "(" + languageCode + ")");
}
}
private String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder();
if (src == null || src.length <= 0) {
return null;
}
char[] buffer = new char[2];
for (int i = 0; i < src.length; i++) {
buffer[1] = Character.forDigit((src[i] >>> 4) & 0x0F, 16);
buffer[0] = Character.forDigit(src[i] & 0x0F, 16);
stringBuilder.append(buffer);
}
return stringBuilder.reverse().toString().toUpperCase();
}
}
相关推荐
C#实现的一个获取Dicom文件内部tag存储的数据。可重新编译参考。支持显式、隐式
PC与ABPLC以Ehternet/IP读取TAG数据,可移植到其他PLC。 //注册会话ID public byte[] Registercmd = new byte[28] { //--------------------------------------------------------Header 24byte---------------...
OPC 连接客户端,读取tag数据,自动识别服务端,自动连接
C#连接OPC获取数据,代码中连接的是KEPServer4.5中自带的Demo地址
简单的小项目: Qt 读取Excel单元格中的数据 很简单的一个方法,用来做简单的项目
wonderware下的historian数据库配置教程+DAServer Manager配置教程
自动获取OpcServer的名称,查看OpcServer相应tag数据
本文主要介绍了在WinCC中如何使用VBS脚本访问变量归档数据,并且获得数据使用Excel模版保存新文件,其中包括两个代码文本文档
OpenGL 读取JPG, PNG, TAG 纹理图片的代码, 经测试验证通过.
修改的C#利用PI SDK连接数据库,取tag值的例子,包括单点快照,单点历史,多点快照,多点历史值
用C#写的上位机,来和kuka机器人进行TCP通讯,获取点位和文件传输
这个是WINCC读取归档里数据的标准表格!!可以用用哦,方便
ID3V1 ID3V2.3 wma tag信息读取 mp3采样率 每秒数据流量读取 写的很随意,希望的得到众人的指点 mailto: xiafeng-003@163.com
NFC标签读取和写入数据demo,亲测可用
JSON数据源–通用后端数据源 JSON数据源针对任意后端执行JSON请求。 JSON数据源建立在之上。 它具有重构的代码,其他功能和积极的开发。 内容 安装 要使用grafana-cli工具安装此插件,请执行grafana-cli : grafana...
[修复]:读取TAG数据错误 [修复]:模板切换后,选择模板错误 [修复]:手机lib_toucp组件无法使用 [修复]:全新ESPCMS在安装组件后,出现提醒语示获取错误 [修复]:询盘的时候,当产品禁用订购,则无法询盘 ...
Console.WriteLine("第"+x.ToString()+"次读取数据:"); for (int i = 0; i ; i++) { ReadTag(tagId[i], ref bVal[i], ref lVal[i], ref fVal[i], sVal); sValString[i] = sVal.ToString(); Console.WriteLine...
ExifTranslate.pas 用于翻译Exif信息为文本的接口实现(读取ExifTags.txt内容并将其Tag名翻译成英文名称) 可继承TDefaultTranslate、TFileTranslate或另外实现IExifTranslate接口并传递给TExif的Create方法,以实现...