2020-12-11 kotlin fragment 動態(tài)申請權(quán)限

在Fragment中申請運行時權(quán)限的時候是使用Fragment本身來進行申請
在Activity中使用的時候我們的代碼如下:

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
        1);

我們在Fragment中申請時不是使用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))
            }
        }
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容