从不同的活动中读取不同的nfc标签

时间:2014-03-26 14:07:56

标签: android nfc

目前我已成功读取标签内容的活动A,但现在我应该能够从活动B中读取另一个标签,两个标签都是plainText但活动A模拟了标签的读取关于歌剧,而活动B必须模拟付款,以便用户在阅读标签时应该已经开展这些活动。

我已经在网上浏览了这个问题,但没有找到任何结果,而且我对nfc的熟练程度还不足以完全解决这个问题。

在此先感谢您的帮助,我不认为代码是必需的,因为它更像是一个理论问题,但我可以提供它。

为了更具体,我使用Mifare Ultralight作为标签。

2 个答案:

答案 0 :(得分:0)

最后,我找到了一种管理不同活动的rad标签的方法。

基本上我必须在Activity中实现Foreground Dispatcher,然后从Activity A和Activity B扩展该Activity,所以每个只读取一个标签,如果已经在foregorund上,系统选择器就不会看到它。

答案 1 :(得分:0)

我做了类似的事。有三种类型的NFC标签,如果用户扫描不同的NFC标签,我必须启动我的应用程序的不同活动。我玩了一会儿,但我想出了解决方案:

    <activity
        android:name=".ui.ProductInfo"
        android:label="Product Info:"
        android:screenOrientation="portrait">
        <intent-filter>

            <data android:mimeType="text/sbapp/info" />
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

    </activity>


    <activity
        android:name=".ui.ShoppingList"
        android:label="Shopping List:"
        android:screenOrientation="portrait">

        <intent-filter>
            <data android:mimeType="text/sbapp/buy" />
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

    </activity>

The NFC tags contained the following:
content type:
text /   sbapp/buy   (instead of text/plain)
data: 34345 (productID)

是的,我创建了一个自定义NFC标签,我用自定义的东西替换了平原。

content type:
text /   sbapp/info   (instead of text/plain)
data: 34345 (productID)