java - 如何使用 Android 发现任何 NFC 技术(不仅是标签)?

标签 java android nfc

我正在用 Java 为我的 Android 2.3 Nexus S 设备编码。我在寻找最近购买的 NFC 读取器/写入器时遇到了问题。在我的 list 文件中,我正在使用

<intent-filter>
     <action android:name="android.nfc.action.TECH_DISCOVERED"/>
     <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
     <meta-data android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/nfc_tech_filter" />

我想要做的就是发现某种 NFC 技术已经存在/可用。当我将手机靠近 NFC 读取器/写入器时,我可以看到日志记录了带有“dalvikm”和“AudioHardware”标签的某种事件。但出于某种原因, Intent 不会启动我的 Activity 。我的应用程序是唯一具有 NFC 功能的应用程序 - 检查我的默认值等以确保。在我的 Activity 中,我只是简单地使用基本布局和 onCreate 方法:

@Override
public void onNewIntent(Intent intent) {
    // TODO
Toast.makeText(this, "NFC TECH DISCOVERED!", Toast.LENGTH_LONG).show();
}

我预计 Activity 至少会启动。任何想法为什么这不是?也许是因为我一直在 NFC 阅读器上挥动这个,而不是我已经成功找到的实际 NFC 标签。我想我不确定为什么应用程序不会至少确认周围有支持 NFC 的设备。

资源文件包含:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
    <tech>android.nfc.tech.NfcA</tech>        
    <tech>android.nfc.tech.Ndef</tech>
    <tech>android.nfc.tech.MifareUltralight</tech>
    <tech>android.nfc.tech.NfcA</tech>        
    <tech>android.nfc.tech.IsoDep</tech>
    <tech>android.nfc.tech.NdefFormatable</tech>
</tech-list>
 </resources>

最佳答案

在“android.nfc.action.TECH_DISCOVERED”中,TECH 并不意味着 NFC 设备,它指的是 NFC 标签上的技术,即。 MifareClassic、UltraLight 等。因此它不会识别您的读写器,因为它不是标签。

我认为您在尝试让桌面 NFC 读取器/写入器与 Nexus 通信时会遇到很多麻烦,因为 Nexus 不能在不安装自定义 ROM 的情况下充当标签,因此它不是能够读取或写入,并且大多数桌面阅读器也不能充当标签,因此无法读取或写入它们。也许您可以进行一些 p2p 通信,但我仍然认为这需要大量工作。

您有哪种 NFC 读写器?

关于java - 如何使用 Android 发现任何 NFC 技术(不仅是标签)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9399383/

相关文章:

java - '!'在 int 方法中被接受并且有两个不同的值 java

java - Selenium - 将文本发送到格式化输入

屏幕变黑后,Java Android 套接字立即被杀死

android - 如何在 android 中使用 MifareClassic API "Increment"和 "Decrement"?

Xamarin IOS NFCNdefReaderSession.ReadingAvailable 为 false

java - 如何限制 jFormattedTextField

java - 如何使用 JButton 打开文件

android - 从纬度和经度获取地址

android - 我可以在 android 的 ListView Activity 中有多个列表吗

安卓NFC重启App