拨打电话

来源:互联网 发布:网络推广专员的kpi 编辑:程序博客网 时间:2024/04/30 13:26

拨打电话是手机常用的功能,Android中可以通过Intent启动android.intent.action.CALL,然后设置Uri参数,拨打电话的prefix为“tel”,所以如果要拨打电话1388888Uri的字符串应为“tel:1388888,即:

Intent myIntent=new Intent("android.intent.action.CALL",

           Uri.parse("tel: 1388888"));//创建Intent对象

然后通过startActivity()方法启动定义的Intent对象即可。现在新建一个名为Sample14Android项目,在main.xml中添加一个TextView、一个EditText和一个Button,其中EditText用于输入电话号码,Button按钮用于拨号,同时设置EditTextinputType属性为phone,即EditText只能输入电话号码,如下:

android:inputType="phone"

然后在Sample14Activity.java中为按钮添加单击事件,当点击按钮时拨打输入的电话号码。Sample14Activity.java中的代码如下:

publicclass Sample14Activityextends Activity {

    /** Called when the activity is first created. */

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

        //拨打电话按钮

        ButtondialBtn=(Button)findViewById(R.id.button1);

        dialBtn.setOnClickListener(new OnClickListener(){

           @Override

           publicvoid onClick(View v) {

              //TODO Auto-generated method stub

              EditTextnumText=(EditText)findViewById(R.id.editText1);

              StringphoneNum=numText.getText().toString();//获取电话号码

              Intent myIntent=new Intent("android.intent.action.CALL",                 Uri.parse("tel:"+phoneNum));//创建Intent对象

              //启动Intent

              startActivity(myIntent);

           }});

    }

}

最后,还需要在AndroidManifest.xmlmanifest节下添加可以拨打电话的用户许可,如下:

    <uses-permissionandroid:name="android.permission.CALL_PHONE"/>

现在运行程序,由于模拟器不能拨打真真的电话,所以可以通过再启动一个模拟器,由于每个模拟器都有一个实例ID,如5554(在模拟器窗体的标题中有该ID值),这个ID可以看做是每部手机的电话号码,通过拨打这个号码即可模拟拨打电话,其结果如下图所示: