我正在用java为我的Android2.3 Nexus设备编写代码。我有一个问题,试图发现一个NFC阅读器/作者,我最近购买了。在我的清单文件中,我使用
<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”。但出于某种原因,我的意图并没有开始我的活动。我的应用程序是唯一有NFC功能的应用程序--检查我的缺省值,等等以确保。在我的活动中,我简单地使用了一个基本布局和onCreate方法:
@Override
public void onNewIntent(Intent intent) {
// TODO
Toast.makeText(this, "NFC TECH DISCOVERED!", Toast.LENGTH_LONG).show();
}我希望至少这次活动能启动。知道为什么不是这样吗?也许是因为我一直在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>发布于 2012-02-22 17:22:02
在"android.nfc.action.TECH_DISCOVERED“中,该技术并不意味着NFC设备,它指的是NFC标签上的技术。MifareClassic,UltraLight等,所以它不会认出你的读者/作者,因为它不是标签。
我认为你很难让一个桌面NFC读取器/编写器与Nexus通信,因为Nexus不能在不安装自定义ROM的情况下充当标签,因此无法读取或写入,而且大多数桌面阅读器也不能充当标记,因此不能对它们进行读写。也许您可以进行一些p2p通信,但我仍然认为这需要大量的工作。
你有哪个NFC阅读器/撰稿人?
发布于 2013-07-11 11:36:26
您的nfc_tech_filter文件中也有错误。您的技术列表中至少有一个必须是由标记支持的技术子集,您希望与之进行通信。你应该使用更多的技术列表和更少的技术。并以这种方式实现了和或原则。
然而,在你的情况下,读卡器,花生的答案是主要的问题。
https://stackoverflow.com/questions/9399383
复制相似问题