C# 如何在Xamarin Android中从WebView启用摄像头和麦克风访问

C# 如何在Xamarin Android中从WebView启用摄像头和麦克风访问,c#,android,xamarin,webview,xamarin.android,C#,Android,Xamarin,Webview,Xamarin.android,我已经构建了一个webRTC应用程序,允许使用javascript通过web流式传输音频和视频,现在我需要在我的Android手机上运行这个web应用程序 我正在使用在我的应用程序中加载URL,但是网络视图似乎阻止了对我手机的摄像头和麦克风的访问。我已经在谷歌上搜索了解决方案,但我发现没有任何东西能解决我的问题,如果有人能帮我解决这个问题,我会非常失望的 AndroidManifest文件: <?xml version="1.0" encoding="utf-8"?> <man

我已经构建了一个webRTC应用程序,允许使用javascript通过web流式传输音频和视频,现在我需要在我的Android手机上运行这个web应用程序

我正在使用在我的应用程序中加载URL,但是网络视图似乎阻止了对我手机的摄像头和麦克风的访问。我已经在谷歌上搜索了解决方案,但我发现没有任何东西能解决我的问题,如果有人能帮我解决这个问题,我会非常失望的

AndroidManifest文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="LexLoco.LexLoco" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="16" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT" />
    <uses-permission android:name="android.permission.CAPTURE_VIDEO_OUTPUT" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL" />
    <uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />
    <application android:label="LexLoco"></application>
</manifest>

C#代码

Button-Button=findviewbyd(Resource.Id.MyButton);
EditText-txtrl=findviewbyd(Resource.Id.editText1);
Text=URL;
WebView webV=findviewbyd(Resource.Id.webViewer);
WebSettings WebSettings=webV.Settings;
webSettings.JavaScriptEnabled=true;
webSettings.AllowFileAccessFromFileURLs=true;
webSettings.allowuniversalaccessfromfileurl=true;
SetWebViewClient(新的WebViewClient());
按钮。单击+=委派{
webV.StopLoading();
webV.LoadUrl(txturl.Text);
};

1)只有在5.0/Api21+中才支持通过Webview的WebRTC,2)与基于清单的权限一起,您必须在运行时处理权限请求,并通过
PermissionRequest
将这些请求呈现给用户,不确定您是否正在执行此操作,因为您的代码仅显示WebView创建/设置3)您的WebRTC是否在设备浏览器上正常运行?是的,它在手机浏览器中运行良好。您正在处理许可请求吗?您找到解决方案了吗?您好,找到解决方案了吗?
            Button button = FindViewById<Button>(Resource.Id.MyButton);
            EditText txturl = FindViewById<EditText>(Resource.Id.editText1);
            txturl.Text = URL;

            WebView webV = FindViewById<WebView>(Resource.Id.webViewer);
            WebSettings webSettings = webV.Settings;

            webSettings.JavaScriptEnabled = true;
            webSettings.AllowFileAccessFromFileURLs = true;
            webSettings.AllowUniversalAccessFromFileURLs = true;

            webV.SetWebViewClient(new WebViewClient());

            button.Click += delegate {
                webV.StopLoading();
                webV.LoadUrl(txturl.Text);
            };