0

我正在开发一个使用 NFC 打开活动的 android 应用程序。所以我们写了一个带有特定 MIME-Type 的 NFC 标签,就像在 API 示例中一样,所以只有我的应用程序可以打开其中的数据。它在 Android 2.3.3 到 Android 4.0.4 上运行良好。

现在,在我将三星 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 类型。

请帮忙!谢谢。

4

2 回答 2

3

我遇到了同样的问题,我发现在 Jelly Bean 中,它将 mimetype 转换为所有小写。我看到在您的 mimetype 标记中它有一个大写的"S".

所以试试这个:

mimeType = "application/com.android.barcodescanner"

希望这可以帮助 :)

于 2012-10-20T19:38:37.087 回答
0

在 JellyBean 中,对标签的 NDEF 检测和解析进行了改进并变得更加严格。可能您的 NDEF 消息在某种程度上无效。例如,检查 NDEF 消息内的有效负载长度值,并将其与存储在标签上的总 NDEF 消息长度进行比较。

于 2012-08-06T12:50:44.353 回答