【发布时间】:2013-01-01 09:45:50
【问题描述】:
当我在 Manifest 文件上尝试 Intent 过滤器时,它运行良好 但是,当我在 Java 上尝试创建 IntentFilter 对象时,它不起作用
public class MainActivity extends Activity {
Intent dialIntent;
IntentFilter filter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnDial = (Button)findViewById(R.id.btnDial);
final EditText txtNumber = (EditText)findViewById(R.id.txtNumber);
btnDial.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"+(txtNumber.getText().toString())));
Uri data = dialIntent.getData();
filter = new IntentFilter();
filter.addAction(dialIntent.getAction());
filter.addCategory(Intent.CATEGORY_DEFAULT);
filter.addDataScheme(data.getScheme());
startActivity(dialIntent);
}
});
}
}
它只对 BroadcastReceiver 有效吗? 我已经尝试过了,但没有任何反应。 如何以编程方式注册 IntentFilter? 我仍然是 Android 编程的初学者。 请给我一些解释
【问题讨论】:
-
您创建了过滤器,但您没有对其进行任何操作。您需要为过滤器注册一个侦听器。当有与过滤器匹配的 Intent 时,您希望发生什么?显示您在清单中放入的部分,我们可以向您展示如何在代码中执行相同的操作。
标签: android android-intent intentfilter