2012-03-24 59 views
0

这里是我的意图过滤代码...麻烦拦截NFC意向与我的应用程序

<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> 

我想要做的是拦截其中有一个URL数据类型和URL指向http://mytix.com任何NFC标签(或http://www.mytix.com)。

但是,上述代码似乎并没有工作。相反,我的NFC标签只是打开浏览器并转到有问题的网址(这是正确的网址!:)我已经检查过)。

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

我正在通过构建直接从Eclipse的电话btw安装应用程序 - 这是否有所作为?

感谢

汤姆

回答

1

我想要做的是拦截其中有一个URL数据类型的任何NFC标签和URL指向http://mytix.com(或http://www.mytix.com)。

尝试NDEF_DISCOVERED而不是TAG_DISCOVERED。 Android仅支持像NDEF格式的NFC标签这样的直接启动。如果您的NFC标签正在使用其他内容,则不能使用AFAIK,而必须自行解析数据。

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

+0

谢谢你。出于某种原因,在您的书籍示例项目中将意图过滤器代码从您的清单中复制出来的工作非常出色。我已经完成了TAG_DISCOVERED,NDEF_DISCOVERED的每一次迭代 - 每一个动作和类别,各种各样,但你的工作似乎很好。 – 2012-03-26 13:20:31