【发布时间】:2016-09-22 13:53:19
【问题描述】:
所以我正在开发一个使用 WebRTC 的应用程序,我正处于想用头撞桌子的地步。我在使用 getUserMedia 时遇到问题,当我在手机 (Android 6.0.1) 上运行它时,它总是返回 PermissionDeniedError。
应用在 AndroidManifest.xml 中设置了这些权限:
<uses-permission android:name="android.permission.INTERNET" />
<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-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
该应用确实在运行时请求存储、摄像头和语音权限,我已经安装了 cordova-diagnostic-plugin,它可以验证该应用具有这些权限。
我还尝试按照某人的建议设置以下 HTML 标头:
<meta http-equiv="Content-Security-Policy" content="media-src: 'self' mediastream: blob:;">
我正在运行 Cordova 6.3.1 和 Ionic 2.0.0。 (我还按照 cordova-diagnostic-plugin 的要求安装了 Android Support Repository 38 和 Support Library 23.2.1)。
作为参考,我使用的 getUserMedia 代码是:
if (navigator.webkitGetUserMedia) {
navigator.webkitGetUserMedia({audio: true, video: true}, gotUserMedia, reject);
}
Android 目标 SDK 版本设置为 23(适用于 Android 6)。
有没有人有任何可以提供帮助的想法?谢谢。
【问题讨论】:
-
如果您使用“6.0.1”,我认为您需要从设置中手动启用存储权限。
标签: javascript android cordova ionic-framework webrtc