Java 如何使用NFC扫描标签?
我只是尝试读取标签的内容。但我研究的时间越长,我就越觉得自己是唯一一个不明白这是怎么回事的人 通过查看developer.android.com网站,我发现了以下方法:Java 如何使用NFC扫描标签?,java,android,nfc,Java,Android,Nfc,我只是尝试读取标签的内容。但我研究的时间越长,我就越觉得自己是唯一一个不明白这是怎么回事的人 通过查看developer.android.com网站,我发现了以下方法: public String readTag(Tag tag) { MifareUltralight mifare = MifareUltralight.get(tag); try { mifare.connect(); byte[] payl
public String readTag(Tag tag) {
MifareUltralight mifare = MifareUltralight.get(tag);
try {
mifare.connect();
byte[] payload = mifare.readPages(4);
return new String(payload, Charset.forName("US-ASCII"));
} catch (IOException e) {
Log.e(TAG, "IOException while writing Scanner message...", e);
} finally {
if (mifare != null) {
try {
mifare.close();
}
catch (IOException e) {
Log.e(TAG, "Error closing tag...", e);
}
}
}
return null;
}
现在,在使用它之前,我需要初始化一些东西:
public void configScanner()
{
Intent intent = getIntent();
tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
try {
ndef.addDataType("*/*"); /* Handles all MIME based dispatches. You should specify only the ones that you need. */
}
catch (MalformedMimeTypeException e) {
throw new RuntimeException("fail", e);
}
intentFiltersArray = new IntentFilter[] {ndef, };
techListsArray = new String[][] { new String[] { Ndef.class.getName() } };
}
然后我就试着去执行它
public void scanClick(View v)
{
textview1.setText(readTag(tag));
}
我还在清单和我自己的XML文件中添加了一些内容
舱单:
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED"/>
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/scan" />
我在你发布的清单中没有看到这一点,但你真的需要它 将此添加到您的清单中
<uses-permission android:name="android.permission.NFC" />
我在您发布的清单中没有看到这一点,但您确实需要它 将此添加到您的清单中
<uses-permission android:name="android.permission.NFC" />
您能发布logcat输出吗?好的,它就在那里说明了错误是什么以及导致错误的原因。我对这些特定的错误知之甚少,所以我建议您搜索InvocationTargetException您能发布logcat输出吗?好的,它就在那里说明了错误是什么以及导致错误的原因。我对这些特定错误知之甚少,因此我建议您在其中搜索InvocationTargetExceptionits,以及Ok,然后请发布logcat输出,说明错误所在,以及Ok,然后请发布logcat输出,说明错误所在
<uses-permission android:name="android.permission.NFC" />