我想实现intent-filter过滤到指定信息以后就打开一个指定activity,在manifest里面的写法我知道,就是:

<activity android:name=".activity_name">

   <intent-filter>
               。。。。。。。             
  </intent-filter>

</activity> 

但我现在想更改在java代码中的Intent-Filter来实现这个功能

我只知道要

IntentFilter filter = new IntentFilter();    
        filter.addAction("android.nfc.action.TECH_DISCOVERED");

别的应该怎么写呢?

推荐图书

  • Android 2高级编程(第2版)
  • Google Android SDK开发范例大全(第2版)
  • 疯狂Android讲义


1个回答

一个intent filter是一个IntentFilter类的实例。

但是,android系统必须在组件未启动的情况下就知道它的能力,因此intent filter一般不会在java代码中设置,而是在应用的manifest文件中作为元素的方式声明。

一个例外是,为broadcast receiver注册动态的filter,可以调用Context.registerReceiver()方法,通过直接实例化IntentFilter对象创建。