Geckoview获得麦克风许可

时间:2019-06-21 20:13:00

标签: android firefox gecko

我正在尝试从GeckoView元素内的网站使用音频录制功能。 因此,我在AndroidManifest.xml中设置了权限:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

当我现在尝试在网站上录制音频时,HTML PopUp(属于网站的一部分,而不是浏览器的功能)告诉我我需要授予许可。我无能为力-只是没有按钮的音符。

另一方面:当我使用常规的Firefox浏览器时,浏览器会问我是否要在显示此HTML PopUp时向该网站的麦克风授予权限。

我没有收到GeckoView的询问,因此需要找到一种方法来授予在GeckoView内部使用该网站的麦克风的权限。 我需要在GeckoView内授予权限吗?我查阅了有关GeckoView权限的文档,但无法使其正常工作(可能是由于我的基本编码知识)。

非常感谢您的帮助!

非常感谢!

1 个答案:

答案 0 :(得分:1)

GeckoView本身不显示任何权限对话框。但是,它为此提供了一个委托,您可以自己实现:GeckoSession.setPromptDelegate()

您基本上必须做两件事:

  1. 如果需要,可以通过实施GeckoSession.PermissionDelegate.onAndroidPermissionsRequest()向Android系统请求权限。
  2. 通过实现GeckoSession.PermissionDelegate.onContentPermissionRequest()来处理来自网站的内容许可请求-这取决于在提供的grant()对象上调用reject()callback

Mozilla's Android Components项目在GeckoView的顶部提供了此功能以及许多其他“浏览器功能”的实现-如果您不想使用自定义实现。像“ Firefox Preview”这样的浏览器都使用该项目中的实现。