我正试图在WebRTC聊天中显示WebView.与本文档 相关的WebView v36支持WebRTC.对于我的测试,我正在使用设备,Chrome/39.0.0.0并添加了许可表示:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<user-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
但是当进入聊天时,在日志中看到铬错误(设备没有显示\翻译任何内容,只有'加载'进度条):
W/AudioManagerAndroid: Requires MODIFY_AUDIO_SETTINGS and RECORD_AUDIO
W/AudioManagerAndroid: No audio device will be available for recording
E/chromium: [ERROR:web_contents_delegate.cc(178)] WebContentsDelegate::CheckMediaAccessPermission: Not supported.
E/chromium: [ERROR:web_contents_delegate.cc(178)] WebContentsDelegate::CheckMediaAccessPermission: Not supported.
W/AudioManagerAndroid: Requires MODIFY_AUDIO_SETTINGS and RECORD_AUDIO
W/AudioManagerAndroid: No audio device will be available for recording
D/ChromiumCameraInfo: Camera enumerated: front
Run Code Online (Sandbox Code Playgroud)
在真实设备上测试,Android 5.1.1
android android-webview webrtc android-permissions webviewchromium
我已经创建了 WebView Activity 并加载了https://web.doar.zone/coronavirus
这个 URL 需要相机权限,我在 Android 中获得了运行时权限。
这是MainActivity.java的完整代码:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
Context context;
ActivityMainBinding binding;
private String url = "https://web.doar.zone/coronavirus";
@Override
protected void onResume() {
super.onResume();
checkCameraPermission();
}
private void checkCameraPermission() {
int writeExternalStorage = ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA);
if (writeExternalStorage != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1001);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode …Run Code Online (Sandbox Code Playgroud) android webview android-webview android-permissions runtime-permissions
我有一个使用摄像头的 https 网站。它在我的桌面浏览器和我的 Android 的 Chrome 中运行良好。
但是,在 Flutter 中,它不适用于 WebView 和 WebViewScaffold。我的应用程序具有摄像头权限,但是当我从 Flutter 应用程序连接到网站时,我没有收到任何使用摄像头的提示。
我在 logcat 中收到此错误:
chromium: [ERROR:web_contents_delegate.cc(197)] WebContentsDelegate::CheckMediaAccessPermission: Not supported.
Run Code Online (Sandbox Code Playgroud)
为什么它适用于 Chrom 而不是我的 WebView ?!以及如何让它在 WebView 或 WebViewScaffold 中正确运行?
谢谢你。