Android 电话拨号器

安卓系统一般自带有:电话,邮件,浏览器功能;
本文章简单,讲解电话自带的电话拨号功能进行,电话拨号。

电话拨号器的:逻辑很简单

  • 首先获取输入的电话号码
  • 然后在点击按钮的时候,发送一个隐式的Intent的给系统
  • 系统去寻找自带的拨号Activity启动,然后拨打号码

在查看Android原始的电话应用,获取拨号的Activity如下:


Android 电话拨号器_第1张图片
这里写图片描述

可以看到我们所需要的隐式条件三个满足其一即可启动该Activity;

java代码如下:


import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class PhoneCallActivity extends AppCompatActivity {

    private EditText phone_call_edittext;
    private Button phone_call_button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_phone_call);

        phone_call_edittext = (EditText) findViewById(R.id.phone_call_edittext);
        phone_call_button = (Button) findViewById(R.id.phone_call_button);

        phone_call_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    
                    String phoneNumber = phone_call_edittext.getText().toString();
                    if("".equals(phoneNumber)){
                    Toast.makeText(PhoneCallActivity.this,"电话号码不能为空",Toast.LENGTH_LONG).show();
                    return;
                    }
                    Intent intent = new Intent();
                    //需要权限:android.permission.CALL_PHONE
                    intent.setAction("android.intent.action.CALL");
//                  intent.addCategory("android.intent.category.DEFAULT");所以这一行可以省略
                    intent.setData(Uri.parse("tel:" + phoneNumber));
                    //方法内部会自动为Intent添加类别:android.intent.category.DEFAULT
                    startActivity(intent);
                }catch (Exception e){
                    Toast.makeText(PhoneCallActivity.this,"输入有误",Toast.LENGTH_LONG).show();
                }

            }
        });
    }
}

XML布局代码:



    
    

注意:

  1. 在调用安卓拨号功能时需要在AndroidManifest添加权限“android.permission.CALL_PHONE”
  2. 这里的电话号码不只是手机号
  3. 注意控制 号码String的内容只能是数字

XML布局样图:


Android 电话拨号器_第2张图片
这里写图片描述

希望对你们有帮助!!!!

你可能感兴趣的:(Android 电话拨号器)