我正在开发一款使用NFC打开活动的Android应用。因此,我们编写了一个具有特定MIME类型的NFC标记,就像在API示例中一样,因此只有我的应用可以打开其中的数据。它在Android 2.3.3到Android 4.0.4上运行得很好。
现在,在我将Samsung Galaxy Nexus升级到Android 4.1 Jelly Bean后,NFC标签不再打开我的应用程序了。有趣的是,当手机在默认的android nfc阅读器中显示时,手机会识别标签的mime类型。
所以问题是......为什么Android 4.1 Jelly Bean中的NFC标签没有打开应用程序?
我的AndroidMenifest.XML中的Intent代码:
<activity
android:name=".ActivityToOpenWithNfcTag"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/com.android.barcodeScanner" />
</intent-filter>
</activity>
如果我在标签和应用程序中使用“text / plain”mime类型,但我需要我唯一的mime类型。
请帮忙! 感谢。
答案 0 :(得分:3)
我有同样的问题,我发现在Jelly Bean中,它将mimetype转换为所有较低的情况。我在你的mimetype标签中看到它有一个大写的"S"
。
所以试试这个:
mimeType = "application/com.android.barcodescanner"
希望这会有所帮助:)
答案 1 :(得分:0)
在JellyBean中,标签的NDEF检测和解析已得到改进并变得更加严格。可能你的NDEF消息在某种程度上是无效的。检查NDEF消息中的有效负载长度值,并将其与存储在标记上的NDEF消息总长度进行比较。