Android系统包含默认的授权提示框, 但是我们仍需要设置自己的页面. 原因是系统提供的授权框, 会有不再提示的选项. 如果用户选择, 则无法触发授权提示. 使用自定义的提示页面, 可以给予用户手动修改授权的指导.下面以定位权限为例:
如果用户没有动态申请权限那么用户开启应用可能无法使用定位的功能,应用也不会提示用户开启定位权限,这时候就需要动态申请权限。
第一步:检查授权并且申请权限
// 检查是否授权 if (ContextCompat.checkSelfPermission(this, Manifest.permission.access_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { //未授权动态申请授权 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_CODE); } else { //权限已经分配 }第二步:重写onRequestPermissionsResult方法,用户同意授权或者拒绝授权该做什么操作@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case REQUEST_CODE: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //用户同意授权 } else { //用户拒绝授权 } break; }}
新闻热点
疑难解答