使用Android Studio写一个打电话案例

					废话不多说,直接贴图

布局
模拟手机实现打电话功能
修改布局文件
代码展示

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
tools:context=".MainActivity"
android:orientation=“vertical”
>

<TextView
    android:text="请输入拨号号码"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     ></TextView>

<EditText
    android:id="@+id/et_phone"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" ></EditText>
<!--按钮-->
<Button
    android:id="@+id/bt_call_phone"
    android:text="打电话"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
    </Button></LinearLayout>

在这里插入图片描述
package com.example.myapplication;
/*
1.
*/
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //第一步得到控件
    //找控件需要做两步,第一步设置id,第二步通过findViewById找到控件
    final EditText et_phone=(EditText)findViewById(R.id.et_phone);
    Button bt_call_phone=(Button)findViewById(R.id.bt_call_phone);
    //2.设置事件
    //第二步点击事件
    bt_call_phone.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            //第三步处理事件,打电话
            //3.1获取号码
            String phone=et_phone.getText().toString();
            Uri callUri=Uri.parse("tel:"+phone);
            //3.2打电话
            //打电话的代码
            //“tel:"后面拼接对应的电话号码

            //intent意图,可以理解成告诉系统你要干什么
            //intent.ACTION_CALL告诉系统我要打电话
            //第二个参数填写对应的Uri

// Intent returnIt=new Intent(Intent.ACTION_CALL,callUri);
//3.2.1创建一个意图
//动态申请权限
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {

                /**
                 * 没有permission.CALL_PHONE权限,就申请权限
                 */
                ActivityCompat.requestPermissions(MainActivity.this,
                        new String[]{Manifest.permission.CALL_PHONE}, 66);
            } else {
                //3.2.2开启意图
                Intent returnIt=new Intent(Intent.ACTION_CALL,callUri);
                startActivity(returnIt);
            }

// returnIt.setAction();
// returnIt.setData();

        }
    });
}

}
代码到这里就结束了,但是靠这些代码还只是把布局写出来了,虚拟模拟打电话还行不通,因为此刻还没有打电话的权限
你只需要在这个文件
在这里插入图片描述
添加这段代码即可

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

如图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值