这是我第一个使用NFC的项目.我想简单地获取NFC标签的ID.我一直在关注这篇文章的回复.这是代码:
public void onResume() {
super.onResume();
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
Toast.makeText(this,"NFC on resume working",Toast.LENGTH_LONG).show();
byte[] tagId = getIntent().getByteArrayExtra(NfcAdapter.EXTRA_ID);
Log.i("EHEHEHEHEHE",tagId + "");
}
//process the msgs array
}
Run Code Online (Sandbox Code Playgroud)
这是代码的响应:
07-06 22:07:29.804 16729-16729/za.co.bookbay.nfcplay I/EHEHEHEHEHE? [B@423a1e18
07-06 22:08:08.644 16729-16729/za.co.bookbay.nfcplay I/EHEHEHEHEHE? [B@423bfde0
07-06 22:08:09.574 16729-16729/za.co.bookbay.nfcplay I/EHEHEHEHEHE? [B@423d6ec8
Run Code Online (Sandbox Code Playgroud)
现在这个数字不断变化,因此这让我相信上面的代码没有得到Tag的序列号或者这是正确的.如果是这样,数字变化的原因是什么?
您正在打印byte []对象,而不是它的内容.这就是你在输出中获得[B @ SomeAddress]的原因.
要打印ID,您可以使用以下内容:
String hexdump = new String();
for (int i = 0; i < tagId.length; i++) {
String x = Integer.toHexString(((int) tagId[i] & 0xff));
if (x.length() == 1) {
x = '0' + x;
}
hexdump += x + ' ';
}
Log.i("EHEHEHEHEHE",hexdump);
Run Code Online (Sandbox Code Playgroud)
(可能有更好的方法将字节数组转换为hexdump-string,java不是我最喜欢的编程语言)
| 归档时间: |
|
| 查看次数: |
4620 次 |
| 最近记录: |