以拨打电话为例
1、在清单文件中添加需要的权限
<uses-permission android:name="android.permission.CALL_PHONE" />
2、判断是否拥有权限
//判断是否拥有该权限
if(ContextCompat.checkSelfPermission(this,android.Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED){
//无权限 申请权限
ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.CALL_PHONE),1)
}else{
//有权限执行逻辑
}
申请权限后通过回调确认用户操作
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
//根据回调的识别码 判断用户是否授予相关权限
when (requestCode){
1->{
if(grantResults.isNotEmpty()&&grantResults[0] == PackageManager.PERMISSION_GRANTED){
//授予权限 执行逻辑
}else{
//未授予权限进行提示
Toast.makeText(this,"You denied the permission",Toast.LENGTH_SHORT).show()
}
}
}
}
网友评论