在程序运行时申请权限
来源:互联网 发布:加入放心淘宝贝没打标 编辑:程序博客网 时间:2024/05/16 07:29
在有些情况下我们要在程序运行时申请权限,接下来写的是我从书上(第一行代码 第二版)看到的方法,这里以打开拨号界面为例
先来看一下Android中的所有危险权限,如下图。
要注意的是,表格中每个危险权限都属于一个权限组,用户一旦同意授权,那么该权限所对应得权限组中那个的所有的其他权限也会同时被授权。6.0及以上系统在使用危险权限是都必须进行运行时权限处理。
第一步
在AndroidManifeast.xml文件中加入如下权限:
<uses-permission android:name="android.permission.CALL_PHONE"/>
第二步
在要打开拨号界面前,先检查该权限已被许可,代码如下:
if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 1); }else { call(); }
其中call()方法将打开拨号界面这个动作封装了起来,代码如下:
private void call() { try { Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:10086")); startActivity(intent); } catch (SecurityException e) { e.printStackTrace(); } }
第三步
重写onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)方法:
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode){ case 1: if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ call(); } else { Toast.makeText(this, "You denied the permission", Toast.LENGTH_SHORT).show(); } break; default: break; } }
阅读全文
0 0
- 在程序运行时申请权限
- 程序运行时申请权限
- android6.0程序在运行时申请权限
- Android程序运行权限申请
- Android:在程序运行时申请权限(第一行代码android)
- Android 6.0在运行时申请权限解释与实例
- 安卓6.0在Fragment申请运行时权限
- 6.0+运行时权限申请
- Android6.0运行时权限申请
- Android 6.0运行时申请权限
- 【Android】6.0 运行时权限申请
- android6.x运行时权限申请管理
- Android6.0运行时权限申请
- 需要运行时申请的权限
- android M 运行时权限申请流程
- Android 6.0 运行时权限申请
- android运行时权限申请和处理
- android 6.0 运行时权限申请流程
- 入住CSDN
- Web中线程的理解
- zzuli2181-GJJ的日常之暴富梦-多校联萌(四)
- 关于javase中 instanceof的用法 为什么判读之后 还要进行强制类型转换
- 【多校训练】hdu 6140 Hybrid Crystals
- 在程序运行时申请权限
- GPU编程自学9 —— 原子操作
- 求圆周率
- 一个故事讲完https
- 【Kotlin 语言】1. 环境安装 | 变量 | 简单使用 | 函数 | 异常 | 递归
- Window之设定静态ip-yellowcong
- PHP入门(第八弹:控制语句)
- MD5加密
- Port 8080 required by Tomcat v7.0 Servcer at localhost is already in use.