要在 WebView 中请求麦克风和相机
权限
,在 AndroidManifest.xml 文件中必须在
权限
列表中添加相应的
权限
。
添加
权限
:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
然后,创建一个 WebViewClient 并覆盖 onPermissionRequest() 方法。在此方法中,您可以检查权限类型和授予权限。
代码示例:
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
String[] requestedResources = request.getResources();
for (String requestedResource : requestedResources) {
switch (requestedResource) {
case PermissionRequest.RESOURCE_AUDIO_CAPTURE:
case PermissionRequest.RESOURCE_VIDEO_CAPTURE:
request.grant(new String[]{PermissionRequest.RESOURCE_AUDIO_CAPTURE, PermissionRequest.RESOURCE_VIDEO_CAPTURE});
break;
default:
request.deny();
break;
这段代码检查请求的资源,并针对音频和视频资源授予权限。如果请求的资源不是音频或视频,它会拒绝权限请求。
注意:上面的代码在 Android 5.0 及更高版本的系统上起作用。在较早版本的 Android 上,您需要使用 WebChromeClient 和 onPermissionRequest() 方法。
参考链接:https://developer.android.com/guide/webapps/webview#TakingPhotosOrVideosWithWebView