在Fragment中申請運(yùn)行時(shí)權(quán)限的時(shí)候是使用Fragment本身來進(jìn)行申請
在Activity中使用的時(shí)候我們的代碼如下:
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);
我們在Fragment中申請時(shí)不是使用AcyivityCompat而是使用Fragment本身,代碼如下:
下面是kotlin 的寫法渤刃,如果是java的話
HomeFragment.this.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
1);
private val PERMISSION_CAMERA_REQUEST_CODE = 101
fun checkPermissionAndCamera() {
val checkSelfPermission =
ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.CAMERA)
if (checkSelfPermission == PackageManager.PERMISSION_GRANTED){
navitionToScan()
}else{
val list=arrayOf(Manifest.permission.CAMERA)
requestPermissions( list, PERMISSION_CAMERA_REQUEST_CODE)
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
if (requestCode == PERMISSION_CAMERA_REQUEST_CODE){
if (grantResults.isNotEmpty() &&
grantResults[0] == PackageManager.PERMISSION_GRANTED){
navitionToScan()
}else{
longToast(getString(R.string.camera_permission_deny))
}
}
}