我正在尝试开发一个连接到Sony Felica NFC芯片并执行P2P读/写操作的Android应用程序。在调试模式下,我可以看到手机与设备建立连接。当手机处于NFC设备的范围内时,它会反复将以下内容打印到日志中:
DEBUG / NFC JNI(194):发现P2P目标
DEBUG / NfcService(194):LLCP激活消息
但是,它无法启动我的应用程序。
在我的Manifest文件中,我将应用程序设置为在发现标记时运行
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tec.example"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".NFCTestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="10"/>
<uses-feature android:name="android.hardware.nfc" android:required="true"/>
</manifest>
知道我错过了什么吗?任何建议都将不胜感激。
答案 0 :(得分:1)
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
更改为:
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
创建一个名为nfc_tech_filter.xml的xml,添加内容:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcF</tech>
</tech-list>