今天在写一个电话拨号器时出现了一个问题,输入电话号码点击拨打出现闪退的情况,报Permission Denial异常,但是配置文件里已经这样写了啊

还是报错,经过查阅发现api22之后对危险权限把控得比较严,不能仅仅这样配置,具体可以看谷歌文档https://developer.android.com/training/permissions/requesting.html

下面说说我的实际解决办法:

1、调用

ContextCompat.checkSelfPermission(Context context,String permission)

这个只是用来看该应用是否具有该permission,有的话就可以直接执行你要做的事,没有的话执行第二步

2、执行

ActivityCompat.requestPermissions(Activity activity,String[] permisssions,int requestCode)

如果在第一步中知道没有获取到该权限,那么就使用该方法获取你需要的权限,其中requestCode常量由自己定义,后面用得着。执行该方法后系统会弹出权限对话框,用户点击允许或者拒绝,无论用户点击什么,都应该执行第三步

3,重写

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

当用户点击(无论获取还是拒绝)后,都会执行该方法,其中requestCode参数就是你刚才定义的那个,这里附上我的代码

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {switch (requestCode){case CALL_PERMISSION_CODE:{Intent intent=new Intent();intent.setAction(Intent.ACTION_CALL);intent.addCategory(Intent.CATEGORY_DEFAULT);Log.i("电话",phone.getText().toString());intent.setData(Uri.parse("tel:"+phone.getText().toString()));startActivity(intent);}}
}

我是直接在该方法里执行了我的业务逻辑,运行成功,无报错

android api23及以上版本报Permission Denial异常处理方法相关推荐

  1. 关于Android 8.0java.lang.SecurityException: Permission Denial错误的解决方法

    关于Android 8.0java.lang.SecurityException: Permission Denial错误的解决方法 参考文章: (1)关于Android 8.0java.lang.S ...

  2. 【错误记录】前台进程报错 ( Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE )

    文章目录 一.报错信息 二.修改方案 一.报错信息 进程保活时 , 遇到的问题 , 手机 Pixel 2 , Android 10.0 系统 ; 2021-04-08 18:17:09.953 155 ...

  3. Permission Denial: requires android.permission.CHANGE_CONFIGURATION

    切换字体过程报错:Permission Denial: updateConfiguration() requires android.permission.CHANGE_CONFIGURATION. ...

  4. Permission Denial: broadcast from android asks to run as user -2 but is calling from user 0;

    解决办法: long ident = Binder.clearCallingIdentity();try {Intent intent = new Intent("xxx.xxx.xxx&q ...

  5. android permission denial starting intent,adb shell 启动应用时的权限问题

    使用 adb shell am start com.njzx.care/com.njzx.care.activity.MainActivity 启动某应用,报错权限问题. Starting: Inte ...

  6. Android:调用其他程序中的activity和Permission Denial: starting Intent 错误解决办法

    今天想调试多个task中栈的情况,在测试程序中调用另一个程序的activity, 代码片段如下: [java]  view plain copy btnStartX=(Button)findViewB ...

  7. Android开发-Activity中“android:exported“属性的作用,以及“Permission Denial: starting Intent“错误解决

    如何在一个应用程序中,启动另外一个应用程序?最近正有这样的需求,也踩了一个小坑.本节介绍使用Activity中"android:exported"属性来实现这种访问. Activi ...

  8. Android 11安装apk异常java.lang.SecurityException: Permission Denial:

    安装apk时出现There was a problem parsing the package 提示信息从抓log信息如下: 03-21 00:58:40.010   926  1129 W Acti ...

  9. Permission Denial: requires android.permission.INTERACT_ACROSS_USERS_FULL

    今天在开发调试时,出现了奇怪的crash情况,在华为手机和google手机上会出现,在其他手机上却不会出现,报错日志如下: Caused by: java.lang.SecurityException ...

最新文章

  1. 中国官方唯一无人车路测报告一出炉,百度股价又涨了
  2. 前端实现可绘制的canvas画布_前端图形学基础(五)——Canvas状态管理
  3. 1到10选一个数字读心术_厉害了!quot;广东110“互联网报警满足您多场景报警需求!...
  4. LeetCode 729. 我的日程安排表 I(set 二分查找)
  5. node.js——sequelize-auto模块生成数据库models及使用
  6. COJ1183(计算表达式的值)
  7. Python中的json.dumps()和json.loads()函数
  8. JUnit测试框架使用介绍
  9. Node.js:中间件——express简单的错误处理日志中间件
  10. E-Prime教程 | 打mark标记
  11. 云课堂智慧职教答案python_云课堂智慧职教答案python,云课堂智慧职教数学答案,云课堂智慧职教搜题...
  12. EasyDarwin测试
  13. leetcode 剑指 Offer 12. 矩阵中的路径
  14. 解决Carsim2016找不Liscens问题
  15. 数据迁移软件|如何将旧电脑的数据传输到新电脑?
  16. PHP FastCGI RCE Vul
  17. 数据库设计中的概念、逻辑、物理结构设计辨析
  18. Python Network(一)基础入门(节点和边基本概念,网络统计量)
  19. 科学怪物!3D人体全身运动捕捉系统,港中文联合Facebook出品
  20. 《中台产品经理宝典》读后感11:大白话说透时下备受追捧的数字化转型是什么?

热门文章

  1. 选择程序员还是公务员?不要被误导了
  2. Swin Transformer作为骨干网络的JDE(VisDrone2019-MOT数据集)
  3. HMM模型——隐含马尔科夫模型【详细分析+图】
  4. HEAD detached from origin/master
  5. [转载](家常菜系列)教你几道八大菜系中的佳肴做法
  6. 2021年陕西高考英语作文成绩查询,2021陕西高考英语作文多少分满分?
  7. A+轮融资近2亿元,本土线控制动「TOP 1」按下“加速键”
  8. 关于共享文件夹的使用
  9. html 折线边框,HTML中的边框属性
  10. 游戏设计中的纹理贴图