美文网首页
Android 电话拨号器

Android 电话拨号器

作者: 枫羽望空 | 来源:发表于2016-12-14 15:42 被阅读178次

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

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

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

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


    这里写图片描述

    可以看到我们所需要的隐式条件三个<intent-filter>满足其一即可启动该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布局代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout 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:orientation="vertical"
        tools:context="com.example.administrator.foundationdemo.PhoneCallActivity">
        <EditText
            android:id="@+id/phone_call_edittext"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:singleLine="true"
            android:inputType="number|phone"
            android:hint="请输入电话号码"/>
        <Button
            android:id="@+id/phone_call_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="拨打号码"/>
    </LinearLayout>
    
    

    注意:

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

    XML布局样图:


    这里写图片描述

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

    相关文章

      网友评论

          本文标题:Android 电话拨号器

          本文链接:https://www.haomeiwen.com/subject/gxwimttx.html