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拨打电话权限总结相关推荐

  1. android 蓝牙电话号码,Android拨打电话和蓝牙状态监听

    一.拨打电话 权限管理 思路 通过Intent设置Action为ACTION_DIAL或者 ACTION_CALL,通过intent启动直接拨打电话或者打开拨打电话界面. 示例代码 直接拨打电话 /* ...

  2. 使用Android拨打电话功能

    1.要使用Android系统中的电话拨号功能,首先必须在AndroidManifest.xml功能清单中加入允许拨打电话的权限: <uses-permission android:name=&q ...

  3. Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...

    编写android拨打电话apk应用实例代码 android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家. MainActivity.java package com.bblei.c ...

  4. android 电话漏洞,Android平台电话权限漏洞公开 手机竟能自己打电话

    闽南网7月22日讯 近日,360手机安全团队发布技术研究报告称,最新发现了一种可以让手机偷偷拨打或挂断电话的Android手机漏洞.分析报告指出,虽然目前Android4.4.3版本已修复了这一漏洞, ...

  5. android 拨打电话 发送短信 权限,Android开发实现拨打电话与发送信息的方法分析...

    本文实例讲述了Android开发实现拨打电话与发送信息的方法.分享给大家供大家参考,具体如下: xml布局: android:layout_width="fill_parent" ...

  6. android 拨打电话 号码判断

    AndroidManifest中添加打电话权限 <uses-permission android:name="android.permission.CALL_PHONE"/& ...

  7. android 拨打电话与发送短信

    通过调用android系统提供的电话与短信功能,可以简单的实现发送短信,拨打电话,但是必须在AndroidManifest.xml里面配置相应权限,定位到 1 <application 2 3 ...

  8. android 拨打电话、 监听来电、监听呼出电话的功能实现

    demo1(通用): 权限 <!-- 监听呼出电话 --> <uses-permission android:name="android.permission.PROCES ...

  9. Android拨打电话的两种实现方法

    添加拨打电话的权限: <uses-permission android:name="android.permission.CALL_PHONE" /> 第一种方法 /* ...

最新文章

  1. 计算机网络技术包括哪几种,计算机网络技术包含的两个主要技术是计算机技术和( )。...
  2. FileReader采用的默认编码
  3. 修复Chrome上的ERR_TOO_MANY_REDIRECTS错误?
  4. Linux 进程管理命令之pidof
  5. ASP.NET MVC3中的ViewBag动态性
  6. 【C语言进阶深度学习记录】三 浮点数(float) 在内存中的表示方法
  7. u-boot向linux内核传递启动参数
  8. [讨论帖] 程序员如何赚外快?
  9. Node.js「四」—— 路由 / EJS 模板引擎 / GET 和 POST
  10. Android自定义view之ViewPager指示器——1
  11. Linux里的/dev/null和21和基本符号
  12. iOS----------APP怎样做更安全
  13. (回溯法)和为n的所有不增正整数和式分解算法
  14. 回顾:前端模块化和AMD、CMD规范(全)
  15. Unity学习笔记-uniwebview4-网页与unity通信
  16. ⭐️UI自动化控制微信发送或转发图片消息✨
  17. 高效能人士的七个习惯 读书笔记
  18. 树莓派mjpg-streamer+内网穿透
  19. 服务器厂商对VMware vSphere的驱动支持
  20. 应用启动失败,因为没有QT平台可以初始化

热门文章

  1. 【计算机毕业设计】018母婴商城系统
  2. 微服务项目--商城管理系统的整合与测试
  3. OpenCV 安卓编程示例:1~6 全
  4. criterial查询(2014-05-29 03:51)续-----Example
  5. Mysql之查看数据库版本
  6. 《今雨》孙溟㠭书画艺术
  7. 小米为什么不怕iPhone降价?
  8. 大家都在用哪些OKR管理工具?
  9. ApacheCN 计算机视觉译文集 20211110 更新
  10. 企业做三体系认证有什么用吗,招投标加分吗