Cordova app中的WebRTC:WebContentsDelegate :: CheckMediaAccessPermission:不支持

时间:2017-07-29 10:39:35

标签: android cordova webrtc

我在Cordova应用程序中使用WebRTC,Cordova 5.2.0和Cordova Android 4.1没有问题。自从我升级到Cordova 6.3.1和Cordova Android 6.1.1后,我在控制台上收到以下错误消息:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="true" />

Android清单中的权限包括以下内容:

[ERROR:voe_audio_processing_impl.cc(685)] SetTypingDetectionStatus: not supported
[WARNING:webrtcvoiceengine.cc(882)] SetTypingDetectionStatus(0) failed, err=8003
[ERROR:audio_manager_android.cc(264)] Unable to select audio device!
[ERROR:web_contents_delegate.cc(199)] WebContentsDelegate::CheckMediaAccessPermission: Not supported.

所以我会说一切都应该没问题。但我仍然得到这个错误。我还注意到,一旦我真的尝试开始流式传输本地视频,我也会收到以下错误消息:

[INFO:CONSOLE(0)] "Refused to load the image 'android-webview-video-poster:default_video_poster/8430923907866893907' because it violates the following Content Security Policy directive: "default-src * gap: data: blob: 'unsafe-inline' 'unsafe-eval' ws: wss:". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.

和此信息:

tf.layers

不确定CSP是否与问题有关。我试图解决这个问题,但Meteor(我用作包装器)不会让我这样做。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:自Android Marshmallow以来,必须以编程方式设置权限。清单中定义的设置将被忽略。

我可以使用这个Cordova插件解决我的问题:

https://github.com/NeoLSN/cordova-plugin-android-permissions