废话不多说,直接贴图
代码展示
<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" />
如图