【发布时间】:2020-05-11 17:32:22
【问题描述】:
我负责测试一个与移动设备兼容的网站,该网站还需要访问设备摄像头和麦克风。我需要扩展测试不同 Android 设备的能力,所以我下载了 Android SDK 并创建了虚拟设备。但是,如果我将任何虚拟设备的摄像头设置为“Webcam0”(以使用我电脑的网络摄像头)并通过内置的网络浏览器访问 url,整个模拟器会立即崩溃。 macOS 然后生成以下报告:
Process: qemu-system-x86_64 [1487]
Path: /Users/USER/Library/Android/*/qemu-system-x86_64
Identifier: qemu-system-x86_64
Version: 0
Code Type: X86-64 (Native)
Parent Process: studio [1288]
Responsible: studio [1288]
User ID: 673642719
Date/Time: 2020-04-29 11:50:56.314 -0400
OS Version: Mac OS X 10.15.4 (19E287)
Report Version: 12
Bridge OS Version: 4.4 (17P4281)
Anonymous UUID: B56B5142-EE7D-3D95-B70C-861201C1208B
Time Awake Since Boot: 2200 seconds
System Integrity Protection: enabled
Crashed Thread: 63 Dispatch queue: com.apple.root.default-qos
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace TCC, Code 0x0
“命名空间 TCC”指向隐私问题。新的 Catalina 使访问相机变得非常困难 (https://carlashley.com/2018/09/28/tcc-round-up/)。我在 Google 上搜索了如何解决 Android 开发问题,回复如下:
如果您的应用使用设备摄像头,请在应用的 Info.plist 文件中包含 NSCameraUsageDescription 键。
如果您的应用使用设备麦克风,请在应用的 Info.plist 文件中包含 NSMicrophoneUsageDescription 键。
这对于实际构建原生 Android 应用程序的人来说非常棒,但我只想启动 Android 模拟器并使用其默认 Web 浏览器来测试网站。
- 为此目的使用 Android Emulator 是否过大?换句话说,我是否可以简单地转到 Chrome 桌面中的开发工具,然后将浏览器的大小调整为我想要测试的任何 Android 设备的目标尺寸?
和
- 如果不是矫枉过正/我必须通过模拟器完成,我会怎么做?我的预感是使用 Info.plist 中的 NSCameraUsageDescription 设置构建自定义 Chromium apk,并通过此处的说明将其放入模拟器:https://developers.google.com/web/t...er-browsers#chromium_content_shell_on_android,但这需要下拉 Chromium 并进行自定义构建。
有没有其他人让他们的 android 模拟器网络浏览器访问 macOS Catalina 上的网络摄像头?步骤是什么?
【问题讨论】:
标签: android-emulator macos-catalina