Geckoview 获取麦克风权限

Geckoview get microphone permission

提问人:Clms 提问时间:6/22/2019 最后编辑:jesupClms 更新时间:8/25/2019 访问量:770

问:

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

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

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

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

我没有被 GeckoView 问到这个问题,因此需要找到一种方法来授予在 GeckoView 中使用本网站麦克风的权限。 我需要在 GeckoView 中授予权限吗?我查找了有关 GeckoView 权限的文档,但无法让它工作(可能是因为我的基本编码知识)。

非常感谢任何帮助!

多谢!

Android Firefox 虎 壁 视图

评论

0赞 CommonsWare 6/22/2019
“它告诉我,我需要给予许可”——你能更详细地解释一下吗?什么是“它”,它是如何请求许可的?如果您引用的是 in-GeckoView 弹出窗口,则可能会从浏览器体验中继承。
0赞 Clms 6/22/2019
很抱歉不清楚:当我在常规Firefox中打开相关网站并想要访问录音功能时,会出现一个弹出窗口(HTML /网站的一部分),并告诉我允许麦克风。同时,Firefox询问我是否要授予此网站的权限。在 GeckoView 中,我只看到 HTML 弹出窗口(它告诉我授予权限),但没有办法授予权限。
0赞 buræquete 6/25/2019
这个答案怎么样?检查其中的清单内容,您可以尝试添加与麦克风相关的权限

答:

2赞 pocmo 8/20/2019 #1

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

你基本上必须做两件事:

  1. 如果需要,通过实现 向 Android 系统请求权限。GeckoSession.PermissionDelegate.onAndroidPermissionsRequest()
  2. 通过实现来处理来自网站的内容权限请求 - 这归结为调用或对提供的对象进行调用。GeckoSession.PermissionDelegate.onContentPermissionRequest()grant()reject()callback

Mozilla 的 Android Components 项目在 GeckoView 之上提供了这个和许多其他“浏览器功能”的实现——如果你不想有一个自定义的实现。像“Firefox Preview”这样的浏览器使用这个项目的实现。