如何以编程方式使用IntentFilter?

时间:2013-01-01 09:45:50

标签: android android-intent intentfilter

当我在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编程的初学者。 请给我一些关于这个的解释

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试拨打任何号码,要拨打特定号码,您可以使用此代码:

Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + YOUR_NUMBER));
startActivity(intent);

无需使用意图过滤器。

虽然您可以查看此链接...可能会对您有帮助。

cant “addAction” to IntentFilter in android