Android拨打电话权限总结
android在6.0和6.0以上拨打电话的权限声明
/*** 打电话** @param phoneNumber*/protected void startCallPhone(String phoneNumber) {this.phoneNuber = phoneNumber;//判断Android版本是否大于23if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {int checkCallPhonePermission = ContextCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE);if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE},MY_PERMISSIONS_REQUEST_CALL_PHONE);return;} else {callPhone(phoneNumber);}} else {callPhone(phoneNumber);// 检查是否获得了权限(Android6.0运行时权限)if (ContextCompat.checkSelfPermission(mContext,Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {// 没有获得授权,申请授权if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) mContext,Manifest.permission.CALL_PHONE)) {// 返回值:
// 如果app之前请求过该权限,被用户拒绝, 这个方法就会返回true.
// 如果用户之前拒绝权限的时候勾选了对话框中”Don’t ask again”的选项,那么这个方法会返回false.
// 如果设备策略禁止应用拥有这条权限, 这个方法也返回false.// 弹窗需要解释为何需要该权限,再次请求授权TastyToastUtils.newInstance(mContext).ERROR("请授权");// 帮跳转到该应用的设置界面,让用户手动授权Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);Uri uri = Uri.fromParts("package", getPackageName(), null);intent.setData(uri);startActivity(intent);} else {// 不需要解释为何需要该权限,直接请求授权ActivityCompat.requestPermissions((Activity) mContext,new String[]{Manifest.permission.CALL_PHONE},MY_PERMISSIONS_REQUEST_CALL_PHONE);}} else {// 已经获得授权,可以打电话callPhone(phoneNumber);}}}private void callPhone(String phoneNumber) {// 拨号:激活系统的拨号组件 -- 直接拨打电话//Intent intent = new Intent(); // 意图对象:动作 + 数据//intent.setAction(Intent.ACTION_CALL); // 设置动作//Uri data = Uri.parse("tel:" + phoneNumber); // 设置数据//intent.setData(data);//startActivity(intent); // 激活Activity组件//打开拨号界面,填充输入手机号码,让用户自主的选择Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+phoneNumber));intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);}// 处理权限申请的回调@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode) {case MY_PERMISSIONS_REQUEST_CALL_PHONE: {if (grantResults.length > 0&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {// 授权成功,继续打电话callPhone(this.phoneNuber);} else {// 授权失败!TastyToastUtils.newInstance(mContext).ERROR("授权失败");}break;}}}
注:在清单文件中声明CALL_PHONE权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
Android拨打电话权限总结相关推荐
- android 蓝牙电话号码,Android拨打电话和蓝牙状态监听
一.拨打电话 权限管理 思路 通过Intent设置Action为ACTION_DIAL或者 ACTION_CALL,通过intent启动直接拨打电话或者打开拨打电话界面. 示例代码 直接拨打电话 /* ...
- 使用Android拨打电话功能
1.要使用Android系统中的电话拨号功能,首先必须在AndroidManifest.xml功能清单中加入允许拨打电话的权限: <uses-permission android:name=&q ...
- Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...
编写android拨打电话apk应用实例代码 android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家. MainActivity.java package com.bblei.c ...
- android 电话漏洞,Android平台电话权限漏洞公开 手机竟能自己打电话
闽南网7月22日讯 近日,360手机安全团队发布技术研究报告称,最新发现了一种可以让手机偷偷拨打或挂断电话的Android手机漏洞.分析报告指出,虽然目前Android4.4.3版本已修复了这一漏洞, ...
- android 拨打电话 发送短信 权限,Android开发实现拨打电话与发送信息的方法分析...
本文实例讲述了Android开发实现拨打电话与发送信息的方法.分享给大家供大家参考,具体如下: xml布局: android:layout_width="fill_parent" ...
- android 拨打电话 号码判断
AndroidManifest中添加打电话权限 <uses-permission android:name="android.permission.CALL_PHONE"/& ...
- android 拨打电话与发送短信
通过调用android系统提供的电话与短信功能,可以简单的实现发送短信,拨打电话,但是必须在AndroidManifest.xml里面配置相应权限,定位到 1 <application 2 3 ...
- android 拨打电话、 监听来电、监听呼出电话的功能实现
demo1(通用): 权限 <!-- 监听呼出电话 --> <uses-permission android:name="android.permission.PROCES ...
- Android拨打电话的两种实现方法
添加拨打电话的权限: <uses-permission android:name="android.permission.CALL_PHONE" /> 第一种方法 /* ...
最新文章
- 计算机网络技术包括哪几种,计算机网络技术包含的两个主要技术是计算机技术和( )。...
- FileReader采用的默认编码
- 修复Chrome上的ERR_TOO_MANY_REDIRECTS错误?
- Linux 进程管理命令之pidof
- ASP.NET MVC3中的ViewBag动态性
- 【C语言进阶深度学习记录】三 浮点数(float) 在内存中的表示方法
- u-boot向linux内核传递启动参数
- [讨论帖] 程序员如何赚外快?
- Node.js「四」—— 路由 / EJS 模板引擎 / GET 和 POST
- Android自定义view之ViewPager指示器——1
- Linux里的/dev/null和21和基本符号
- iOS----------APP怎样做更安全
- (回溯法)和为n的所有不增正整数和式分解算法
- 回顾:前端模块化和AMD、CMD规范(全)
- Unity学习笔记-uniwebview4-网页与unity通信
- ⭐️UI自动化控制微信发送或转发图片消息✨
- 高效能人士的七个习惯 读书笔记
- 树莓派mjpg-streamer+内网穿透
- 服务器厂商对VMware vSphere的驱动支持
- 应用启动失败,因为没有QT平台可以初始化