我试图找出当Android设备在ndef消息中使用带有应用程序记录的nfc卡时如何启动特定活动。我试图启动的活动不是父活动,这可能是我问题的原因...
nfc卡是用包含两条记录的ndef消息编写的,第一条是带有uri的URI记录" http://com.neodarque.nfc/item/52312321",然后是应用程序记录(使用NdefRecord.createApplicationRecord("com.neodarque.nfc")
)
AndroidManifest.xml文件中的相关部分:
<activity
android:name="com.neodarque.nfc.activities.LoginActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize|stateVisible" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name="com.neodarque.nfc.activities.MainActivity"
android:label="@string/title_activity_main"
android:parentActivityName="com.neodarque.nfc.activities.LoginActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.neodarque.nfc.activities.LoginActivity" />
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/com.neodarque.nfc:pkg"/>
</intent-filter>
</activity>
我也尝试过使用不同的android:pathPrefixes进行上述变体,使用和不使用斜杠作为前缀,使用和不使用尾随&#34;:pkg&#34;。
而且我也尝试过使用意图过滤器代替uri-record,没有运气,如下:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="http" android:host="nfc.neodarque.com"/>
</intent-filter>
我的应用程序总是在设备接近我的nfc卡时启动,但它总是由我的LoginActivity启动。我错过了什么?