一、实现步骤

1.需要创建拨号意图

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:" + 需要拨打的电话号码));

startActivity(intent);

2.权限允许

3. Android6.0 之后需要动态授权

ActivityCompat.requestPermissions(activity,new String[]{Manifest.permission.CALL_PHONE},0x11);

二、示例工程

1.搭建Ui(代码如下)

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:id="@+id/editTextTextPersonName"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_marginTop="4dp"

android:ems="10"

android:inputType="number"

android:maxLength="11"

android:hint="请输入电话号码"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.497"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/button"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_marginTop="8dp"

android:text="拨打电话"

android:onClick="OnClickButton"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.0"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName" />

2.实现拨号功能(代码如下)

package com.hiscene.androiddemo;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import androidx.core.app.ActivityCompat;

import android.Manifest;

import android.app.Activity;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.net.Uri;

import android.os.Build;

import android.os.Bundle;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

import static android.content.pm.PackageManager.PERMISSION_GRANTED;

public class MainActivity extends AppCompatActivity {

private EditText editText;

private final Activity activity = this;

//授权请求码

private static final int PERMISSIONS_CODE = 656;

private String number;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

editText = findViewById(R.id.editTextTextPersonName);

}

//按钮点事件

public void OnClickButton(View view) {

switch (view.getId()) {

case R.id.button:

//获取输入的电话号码

number = editText.getText().toString().trim();

//检查是否有拨号权限,没有就动态申请

RequestPermissions(PERMISSIONS_CODE, new String[]{Manifest.permission.CALL_PHONE});

break;

}

}

//拨打电话

private void CallPhone() {

if (number == null || "".equals(number)) {

Toast.makeText(activity, "拨号失败,号码为空!", Toast.LENGTH_LONG).show();

return;

}

Intent intent = new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:" + number));

startActivity(intent);

}

//请求权限

public void RequestPermissions(int requestCode, String[] permissions) {

//android6.0 及以上机型

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

boolean needPermission = false;

for (String permisson : permissions) {

if (activity.checkSelfPermission(permisson) != PackageManager.PERMISSION_GRANTED) {

needPermission = true;

break;

}

}

if (needPermission) {

//用户没有权限,动态请求权限

activity.requestPermissions(permissions, requestCode);

} else {

CallPhone();

}

}

//android6.0 以下机型

else {

CallPhone();

}

}

//授权回调

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if (requestCode == PERMISSIONS_CODE) {

for (int i = 0; i < permissions.length; i++) {

String s = permissions[i];

if (grantResults[i] != PERMISSION_GRANTED) {

//用户拒绝授权

Toast.makeText(activity, "拨号失败,需要拨号权限!", Toast.LENGTH_LONG).show();

} else {

CallPhone();

}

}

}

}

}

三、资料下载

1.源码下载链接:https://pan.baidu.com/s/1Uohmx29kgLqCjjRinucgvA  密码:rj51

android建立电话拨号器代码,Android编写电话拨号器相关推荐

  1. python音乐播放器代码_pygame编写音乐播放器的实现代码示例

    1.准备工作 ide:pycharm python:3.7 三方包:pygame.pyinstaller.mutagen 几首mp3格式的歌 2.开始 2.1 设计说明 1.包含 上一首.下一首.暂停 ...

  2. android 仿ios动画效果代码,Android仿IOS上拉下拉弹性效果的实例代码

    用过iphone的朋友相信都体验过页面上拉下拉有一个弹性的效果,使用起来用户体验很好:Android并没有给我们封装这样一个效果,我们来看下在Android里如何实现这个效果.先看效果,感觉有些时候还 ...

  3. python抽奖代码_python编写实现抽奖器代码示例

    本篇文章小编给大家分享一下python编写实现抽奖器代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. # coding=utf-8 import ...

  4. android博学谷我的代码,Android项目实战系列—基于博学谷(四)我的模块(下)...

    由于这个模块内容较多,篇幅较长,请耐心阅读. "我"的模块分为四个部分 [ ] [我的界面]() [ ] [设置界面]() [x] [修改密码界面]() [x] [设置密保和找回密 ...

  5. android 微信设置圆角边框代码,Android编程实现圆角边框的方法

    本文实例讲述了Android编程实现圆角边框的方法.分享给大家供大家参考,具体如下: 设置边框圆角可以在drawable-mdpi目录里定义一个xml: android:topRightRadius= ...

  6. java 8流自定义收集器_Java 8编写自定义收集器简介

    java 8流自定义收集器 Java 8引入了收集器的概念. 大多数时候,我们几乎不使用Collectors类中的工厂方法,例如collect(toList()) , toSet()或其他更有趣的方法 ...

  7. android做拨号程序代码,Android开发手机拨号程序实现实例源码介绍

    Android开发手机拨号程序实现实例源码介绍,在上一篇文章中,我们实现了第一个程序:helloWorld,并成功测试完成.还给大家介绍了Android项目结构和说明.现在写一个手机拨号程序: 首先, ...

  8. android swf 播放器代码,Android Flash swf播放器源码(2016),技术稳定可以商用—— BY softboy...

    Android Flash swf播放器源码(2016) 为什么说标题加上2016? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...

  9. android swf 播放器代码,Android Flash swf播放器源码(2019)

    Android Flash swf播放器源码(2019) 为什么说标题加上2019? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...

最新文章

  1. [转]笑话: 耐力惊人的三只乌龟
  2. Find The Multiple POJ - 1426(只包含01的十进制倍数(同余模定理))
  3. Spark 机器学习中的线性代数库
  4. Volley网络请求框架简析——Android网络请求框架(三)
  5. 一维FDTD等离子体的Matlab,修正过的一维FDTD等离子体MATLAB代码(公式修正)
  6. android web developer,Growth: 一个关于如何成为优秀Web Developer 的 App
  7. C 标准库—— stdlib.h(包括 rand srand 的实现)
  8. matplotlib制作多张图
  9. 小程序webview 页面被放大_Android中WebView加载的网页被放大的解决办法
  10. Ascii完整码表(256个)
  11. 学生信息管理系统(SSM+JSP)
  12. 计算机设备故障,计算机常见硬件故障及其原因
  13. 两步解决:PDF旋转后怎么保存?
  14. cve 爬虫_爬虫技术实践(九)国家信息安全漏洞库基于月份的漏洞收集实战
  15. Java调用有道翻译API包括APPID/密钥地址注册
  16. Python 利用opencv给白底照片换色,全网唯一
  17. 重看张艺谋的《英雄》
  18. APM 新版电机电调校准
  19. knife4j的使用
  20. PHP调用微信消息订阅推送

热门文章

  1. 什么是计算机素质教育,计算机教育在素质教育中的作用
  2. jsp初学者必备知识
  3. 曙光服务器开机显示B9,曙光服务器做RAID步骤
  4. libev 源码解析
  5. 汽车美容快修店如何快速拓客-云上铺汽车管理软件
  6. Android实现异步从网络加载图片列表
  7. 基本算法练习——投篮游戏
  8. Windows Service 2012 IIS Microsoft excel Application
  9. Unity5.6.4f1 配置WebGL教程
  10. #软件测试###浅谈几个UI自动化测试工具