无法通过我的应用拦截NFC意图

时间:2012-03-24 14:29:49

标签: android android-intent intentfilter

这是我的意图过滤器代码......

<activity android:name="IntentReceiver">
      <intent-filter>
        <action android:name="android.nfc.action.TAG_DISCOVERED"/>
        <category android:name="android.intent.category.DEFAULT" />

        <data
          android:scheme="http"
          android:host="mytix.com"
          android:pathPattern="/" />

        <data
            android:scheme="http"
            android:host="www.mytix.com"
            android:pathPattern="/" />

      </intent-filter>
    </activity>

我想要拦截任何具有网址数据类型且网址指向http://mytix.com(或http://www.mytix.com)的NFC标记。

但是上面的代码似乎不起作用。相反,我的NFC标签只是打开浏览器并去问题网址(这是正确的网址!:)我已经检查过了。

如何拦截意图?我最终想要的是一个标签,如果他们没有应用程序,将把用户带到移动网站,但如果他们安装了应用程序,它将直接带到应用程序。我相信我是在正确的路线上,但上面的代码由于某种原因不起作用。

我正在通过Eclipse btw直接建立手机来安装应用程序 - 这有什么不同吗?

由于

汤姆

1 个答案:

答案 0 :(得分:1)

  

我想要拦截任何具有网址数据类型且网址指向http://mytix.com(或http://www.mytix.com)的NFC标记。

尝试NDEF_DISCOVERED,而不是TAG_DISCOVERED。 Android将仅支持针对NDEF格式的NFC标签的直接启动。如果您的NFC标签使用其他内容,则无法使用<intent-filter> AFAIK,而是必须自行解析数据。

Here is a book sample project演示了如何编写NDEF格式标记的URL(通过浏览器应用程序中的“共享页面”选项触发)并响应NDEF格式的标记并写入特定的URL。