1.布局文件:

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.itheima.callphone.MainActivity" >    <EditText        android:id="@+id/et_number"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_alignParentTop="true"        android:ems="10" >        <requestFocus />    </EditText>    <Button        android:id="@+id/bt_dial"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_below="@+id/et_number"        android:text="@string/_dial" /></RelativeLayout>

2.MainActivity.java

package com.itheima.callphone;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.text.TextUtils;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends ActionBarActivity implements OnClickListener {    //用于输入电话号码的文本框    private EditText et_number;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获得号码文本输入框        et_number = (EditText)findViewById(R.id.et_number);        //获得拨号按钮        Button bt_dial = (Button)findViewById(R.id.bt_dial);        bt_dial.setOnClickListener(this);    }    //实现各种控件的点击事件    @Override    public void onClick(View v) {        switch (v.getId()) {        case R.id.bt_dial:            callPhone();            break;        default:            break;        }    }    //实现拨号操作    private void callPhone() {        //获取号码输入框的号码        String number = et_number.getText().toString().trim();        //进行非空判断        if(TextUtils.isEmpty(number)){            //给用户提示            Toast.makeText(MainActivity.this, "号码不能为空", Toast.LENGTH_LONG).show();          return;
        }        //开启拨号服务        Intent intent = new Intent();        intent.setAction(Intent.ACTION_CALL);        intent.setData(Uri.parse("tel:"+number));        startActivity(intent);    }}

3.常见错误

错误描述:

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:xxx-xxx-xxxx cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{b76dbe10 1322:com.itheima.callphone/10032} (pid=1322, uid=10032) requires android.permission.CALL_PHONE

原因:没有给应用程序添加拨号的权限,添加方法如下图.

Android基础--电话拨号器_第1张图片

Android基础--电话拨号器_第2张图片

更多相关文章

  1. Android 获取本机号码
  2. Android 电话拨号
  3. android 开发中遇到错误及解决办法总结(在别处看到的)
  4. android 网络语音电话合集 此文为备份
  5. Android关于常用正则号码类Util
  6. Android 'showAsAction' in package 'android'错误解决

随机推荐

  1. android 修改部分文本的颜色
  2. 【Android】EventBus使用相关
  3. 个人练习:查看,获取联系人电话
  4. Android实现拼图小游戏
  5. android判断设备是否有相机的实例代码
  6. android 判断当前线程是不是主线程的几种
  7. android volley 框架图片请求后有时会导
  8. Android获取系统顶部状态栏(Status Bar)
  9. 一个最简单的Firefox OS APP的开发及部署
  10. Android Handler机制 - MessageQueue如何