kotlin - 类型不匹配:推断类型为 NameFragment 但预期为 Context - Kotlin
问题描述
当有人按下按钮时,我想制作录制音频权限请求功能。我经历了许多谷歌搜索,从 27 个错误到只有 2 个错误。
我搜索了很多问题,但没有一个是我的问题的解决方案。这是fragment_edward.kt的代码:
ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
private fun requestRecordAudioPermission(){
var permissionsToRequest = mutableListOf<String>()
if(!hasRecordAudioPermission())
permissionsToRequest.add(Manifest.permission.RECORD_AUDIO)
if(permissionsToRequest.isNotEmpty()){
ActivityCompat.requestPermissions(this, permissionsToRequest.toTypedArray(),0)
}
}
第一个错误:
Type mismatch: inferred type is SlideshowFragment but Context was expected
第二个错误:
Type mismarch: inferred type is SlideshowFragment but Activity was expected
我真的希望,有人可以帮助我。非常感谢大家的每一个回答或问题。
解决方案
我不完全知道这段代码的作用,但我认为您在这里遇到了错误
ActivityCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
和这里
ActivityCompat.requestPermissions(this, permissionsToRequest.toTypedArray(),0)
正确的?
如果您在片段中调用此代码(您这样做,因为错误消息),您应该将其更改如下:
ActivityCompat.checkSelfPermission(requireContext(), Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED
和
ActivityCompat.requestPermissions(requireActivity(), permissionsToRequest.toTypedArray(),0)
推荐阅读
- python - 根据其他字典键对 Python 中的字典进行排序
- javascript - JS - 检查对象是否包含在另一个对象中
- html - 设置宽度和高度以改进 CLS 会导致纵横比问题
- curl - 在centos服务器中执行未知的curl命令
- r - 在自定义 R 函数中使用时间序列模型
- linux - 如何在 Yocto 中更改文件所有权
- python - 使用相机重置背景滚动未正确重置
- javascript - 如何正确打开 JQuery AJAX Success 的新窗口?
- php - 将自定义配置文件字段作为元数据添加到 Woocommerce 中的订单
- java - 编写 XLSX 文件(Java 相当于 python 中的 pandas 库)