android建立电话拨号器代码,Android编写电话拨号器
一、实现步骤
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编写电话拨号器相关推荐
- python音乐播放器代码_pygame编写音乐播放器的实现代码示例
1.准备工作 ide:pycharm python:3.7 三方包:pygame.pyinstaller.mutagen 几首mp3格式的歌 2.开始 2.1 设计说明 1.包含 上一首.下一首.暂停 ...
- android 仿ios动画效果代码,Android仿IOS上拉下拉弹性效果的实例代码
用过iphone的朋友相信都体验过页面上拉下拉有一个弹性的效果,使用起来用户体验很好:Android并没有给我们封装这样一个效果,我们来看下在Android里如何实现这个效果.先看效果,感觉有些时候还 ...
- python抽奖代码_python编写实现抽奖器代码示例
本篇文章小编给大家分享一下python编写实现抽奖器代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. # coding=utf-8 import ...
- android博学谷我的代码,Android项目实战系列—基于博学谷(四)我的模块(下)...
由于这个模块内容较多,篇幅较长,请耐心阅读. "我"的模块分为四个部分 [ ] [我的界面]() [ ] [设置界面]() [x] [修改密码界面]() [x] [设置密保和找回密 ...
- android 微信设置圆角边框代码,Android编程实现圆角边框的方法
本文实例讲述了Android编程实现圆角边框的方法.分享给大家供大家参考,具体如下: 设置边框圆角可以在drawable-mdpi目录里定义一个xml: android:topRightRadius= ...
- java 8流自定义收集器_Java 8编写自定义收集器简介
java 8流自定义收集器 Java 8引入了收集器的概念. 大多数时候,我们几乎不使用Collectors类中的工厂方法,例如collect(toList()) , toSet()或其他更有趣的方法 ...
- android做拨号程序代码,Android开发手机拨号程序实现实例源码介绍
Android开发手机拨号程序实现实例源码介绍,在上一篇文章中,我们实现了第一个程序:helloWorld,并成功测试完成.还给大家介绍了Android项目结构和说明.现在写一个手机拨号程序: 首先, ...
- android swf 播放器代码,Android Flash swf播放器源码(2016),技术稳定可以商用—— BY softboy...
Android Flash swf播放器源码(2016) 为什么说标题加上2016? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...
- android swf 播放器代码,Android Flash swf播放器源码(2019)
Android Flash swf播放器源码(2019) 为什么说标题加上2019? 其实不是什么新技术,因为android4.1之后的android 浏览器内核版本发生了变化导致 Adobe 的Fl ...
最新文章
- [转]笑话: 耐力惊人的三只乌龟
- Find The Multiple POJ - 1426(只包含01的十进制倍数(同余模定理))
- Spark 机器学习中的线性代数库
- Volley网络请求框架简析——Android网络请求框架(三)
- 一维FDTD等离子体的Matlab,修正过的一维FDTD等离子体MATLAB代码(公式修正)
- android web developer,Growth: 一个关于如何成为优秀Web Developer 的 App
- C 标准库—— stdlib.h(包括 rand srand 的实现)
- matplotlib制作多张图
- 小程序webview 页面被放大_Android中WebView加载的网页被放大的解决办法
- Ascii完整码表(256个)
- 学生信息管理系统(SSM+JSP)
- 计算机设备故障,计算机常见硬件故障及其原因
- 两步解决:PDF旋转后怎么保存?
- cve 爬虫_爬虫技术实践(九)国家信息安全漏洞库基于月份的漏洞收集实战
- Java调用有道翻译API包括APPID/密钥地址注册
- Python 利用opencv给白底照片换色,全网唯一
- 重看张艺谋的《英雄》
- APM 新版电机电调校准
- knife4j的使用
- PHP调用微信消息订阅推送