不管是危险权限还是普通权限都要在Manifest文件中配置:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
以读取联系人为例进行权限申请:
fun requestPermission(view: View) {
val checkSelfPermission = ContextCompat.checkSelfPermission(this@MainActivity,
Manifest.permission.READ_CONTACTS)
if (checkSelfPermission == PackageManager.PERMISSION_GRANTED) {
//todo :has ready get permission write your code here
} else {
//requset permission
ActivityCompat.requestPermissions(this@MainActivity,
arrayOf(Manifest.permission.READ_CONTACTS), REQUEST_CODE)
}
}
然后再onRequestPermissionsResult中进行判断操作:
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
//super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == REQUEST_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED
&& permissions[0] == Manifest.permission.READ_CONTACTS) {
//todo:permission granted
Toast.makeText(this@MainActivity,"permission granted",Toast.LENGTH_SHORT).show()
} else{
//todo:permission denied
Toast.makeText(this@MainActivity,"permission denied",Toast.LENGTH_SHORT).show()
}
}
}
网友评论