【问题标题】:Type mismatch: inferred type is NameFragment but Context was expected - Kotlin类型不匹配:推断类型为 NameFragment 但预期为 Context - Kotlin
【发布时间】:2021-01-31 09:45:26
【问题描述】:

当有人按下按钮时,我想制作一个录制音频权限请求功能。我经历了很多谷歌搜索,从 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

我真的希望有人可以帮助我。 非常感谢大家的每一个回答或问题。

【问题讨论】:

    标签: kotlin android-activity type-mismatch


    【解决方案1】:

    我不完全知道这段代码的作用,但我认为您在这里遇到了错误

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多