当我在Manifest文件上尝试Intent filter时,它工作得很好,但当我在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编程的初学者。请对此给我一些解释
发布于 2013-01-01 17:56:13
我认为你正在尝试拨打任何号码,而要拨打一个特定的号码,你可以使用以下代码:
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + YOUR_NUMBER));
startActivity(intent);不需要使用意图过滤器。
尽管你可以查看这个link...may,但它会对你有所帮助。
https://stackoverflow.com/questions/14109404
复制相似问题