Я получаю сообщение об ошибке «Либо грант (), либо deny () уже вызван», когда я пытаюсь получить доступ к странице в WebView, требующей доступа как к микрофону, так и к камере.
Это мое onPermissionRequest, но по какой-то причине, если оба они запрашиваются в одно и то же время, приложение закрывается, но только один запрос, кажется, работает нормально.
override fun onPermissionRequest(permissionRequest: PermissionRequest?) {
Log.d(TAG, "onJSPermissionRequest")
val mPermissionRequest: PermissionRequest? = permissionRequest
for (request in permissionRequest?.resources!!){
if (request == PermissionRequest.RESOURCE_VIDEO_CAPTURE){
val alertDialogBuilder = AlertDialog.Builder(mContext)
.setTitle("Allow Permission to Camera access!")
.setPositiveButton("Allow") { dialog, which ->
dialog.dismiss()
mPermissionRequest?.grant(arrayOf(PermissionRequest.RESOURCE_VIDEO_CAPTURE))
}
.setNegativeButton("Deny") { dialog, which ->
dialog.dismiss()
mPermissionRequest?.deny()
}
val alertDialog = alertDialogBuilder.create()
alertDialog.show()
}
if(request == PermissionRequest.RESOURCE_AUDIO_CAPTURE){
val alertDialogBuilder = AlertDialog.Builder(mContext)
.setTitle("Allow Permission to Microphone access!")
.setPositiveButton("Allow") { dialog, which ->
dialog.dismiss()
mPermissionRequest?.grant(arrayOf(PermissionRequest.RESOURCE_AUDIO_CAPTURE))
}
.setNegativeButton("Deny") { dialog, which ->
dialog.dismiss()
mPermissionRequest?.deny()
}
val alertDialog = alertDialogBuilder.create()
alertDialog.show()
}
}
}
override fun onPermissionRequestCanceled(request: PermissionRequest?) {
super.onPermissionRequestCanceled(request)
Toast.makeText(mContext,"Permission Denied",Toast.LENGTH_SHORT).show()
}
}
}
Я знаю, что проблема заключается в том, что я дважды запрашиваю грант (удаление гранта команда в одном из случаев решает cra sh, но теперь дает разрешения), но ресурсы для обоих запросов различны ..