类型不匹配:推断类型是 NameFragment 但上下文是预期的 - Kotlin

Type mismatch: inferred type is NameFragment but Context was expected - Kotlin

我想在有人按下按钮时制作一个录制音频权限请求功能。我经历了很多次 google 搜索,从 27 个错误到只有 2 个错误。

我搜索了很多问题,但其中 none 是我问题的解决方案。 这是 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)