Android studio 如何使用webview同时获得麦克风和摄像头权限

Android studio 如何使用webview同时获得麦克风和摄像头权限,android-studio,webview,Android Studio,Webview,当我试图访问WebView中同时需要麦克风和摄像头访问的页面时,出现错误“grant()或deny()已被调用” 这是我的onPermissionRequest,但由于某些原因,如果同时请求了这两个请求,应用程序就会崩溃,但只有一个请求似乎可以正常工作 override fun onPermissionRequest(permissionRequest: PermissionRequest?) { Log.d(TAG, "onJSPermission

当我试图访问WebView中同时需要麦克风和摄像头访问的页面时,出现错误“grant()或deny()已被调用”

这是我的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()
        }
    }
}
我知道问题是因为我请求了两次授权(在其中一种情况下删除grant命令可以解决崩溃问题,但现在授予了权限),但两个请求的资源不同