美文网首页
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