【发布时间】:2021-02-02 00:04:58
【问题描述】:
我正在尝试打开相机并允许用户从 Xamarin.Android 的 web 视图中捕获图像帧。
我已将 webview 指向此 URL,其中包含一些示例:https://googlechrome.github.io/samples/image-capture/index.html。在设备的 Chrome 浏览器中打开 URL 时,这些示例运行良好,但在应用程序的 web 视图中打开时失败。这是我的 WebChromeClient 实现:
internal class ChromeWebviewClient : WebChromeClient
{
public override void OnPermissionRequest(PermissionRequest request)
{
request.Grant(request.GetResources());
}
}
我已在清单中声明了相机权限:
<uses-permission android:name="android.permission.CAMERA" />
导航到示例页面并点击“获取用户媒体”似乎没有任何作用,我在应用程序日志中看到以下似乎相关但对我没有意义的内容:
[CameraManagerGlobal] Connecting to camera service
[VendorTagDescriptor] addVendorDescriptor: vendor tag id 3854507339 added
[CameraManagerGlobal] Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_CLOSED for client com.masterappstudio.qrcodereader API Level 1
[CameraManagerGlobal] Camera 1 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client com.sec.android.app.sbrowser API Level 2
[CameraManagerGlobal] Camera 2 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client android.system API Level 2
[CameraManagerGlobal] Camera 90 facing CAMERA_FACING_FRONT state now CAMERA_STATE_CLOSED for client com.samsung.android.server.iris API Level 2
我还在 OnPermissionRequest 处放置了一个断点,但它似乎没有触发。
我怀疑这与 Android 6+ 中引入的运行时相机权限有关(我运行的是 Android 9)。我已经在手机设置中将相机权限设置为允许,但似乎也没有做任何事情。
我已经在这个主题上用尽了谷歌搜索(大部分点击都围绕着标志性和 phonegap 框架),并注意到这里有一些针对原生 Android 的问题以 0 个答案回应了这个问题。
【问题讨论】:
标签: android xamarin.android camera android-webview google-chrome-webview