- 在onCreate()中初始化ActivityResultLauncher<>变量
// 定义一个申请系统权限的意图
var resultLauncher = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { it ->
// 此处为intent回调结果,保存在it对象中,即原来的onActivityResult()
Log.i(mTAG, "onViewCreated: ${it}, ")
}
其中ActivityResultContracts类预定义了多种系统级intent动作,例如拍照,打开文件,获取权限
- 打开上一步预定义好的意图 (intent)
// 在launch()函数中传递上一步中定义好的意图所需的参数(此处指需要申请的系统权限名称)
btn.setOnClickListener {
resultLauncher?.launch(arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.BLUETOOTH))
}