我在Android Studio的AVD管理器中创建了一个armeabi API 21模拟器,将其设置为使用网络摄像头作为前置摄像头,然后启动它.问题是它无法打开它,因为我收到此错误:
emulator: ERROR: camera_device_start_capturing: VIDIOC_STREAMON on camera '/dev/video0' has failed: Timer expired
emulator: ERROR: _camera_client_query_start: Cannot start camera '/dev/video0' for NV21[640x480]: Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
网络摄像头使用其他软件正常工作.操作系统是Ubuntu 14.04.
java android emulation android-virtual-device android-studio
当我启动Camera应用程序时,我收到此错误,这是我的logcat.
12-08 12:50:10.393 2275-2369/com.android.launcher3 E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa21675b0
12-08 12:50:10.509 965-3048/? E/CameraService: CameraService::connect X (PID 3209) rejected (invalid camera ID 0)
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: fail to connect Camera
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: java.lang.RuntimeException: Fail to connect to camera service
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: at android.hardware.Camera.<init>(Camera.java:495)
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: at android.hardware.Camera.open(Camera.java:341)
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: at com.android.camera.CameraHolder.open(CameraHolder.java:131)
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: at com.android.camera.Util.openCamera(Util.java:267)
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: at com.android.camera.Camera$3.run(Camera.java:1100)
12-08 12:50:10.510 3209-3224/com.android.camera E/CameraHolder: at java.lang.Thread.run(Thread.java:818)
12-08 12:50:10.511 3209-3224/com.android.camera …Run Code Online (Sandbox Code Playgroud) 据我所知,Android模拟器没有相机.要捕获实时图像,我们必须使用网络摄像头.我在这个网站上看到代码使用android模拟器中的网络摄像头来捕获图像,但我不知道如何使用这段代码.
当我尝试启动Android虚拟设备并将相机连接到我的笔记本电脑的网络摄像头时,我收到以下消息:
emulator: ERROR: camera_device_start_capturing: Device 'AndroidEmulatorVC0' is unable to save frame to the clipboard: 0
Run Code Online (Sandbox Code Playgroud)
这是我的设置:
Android Studio 0.5.9
Windows 8.1专业版
联想Yoga 2 Pro笔记本电脑
带有intel HAX加速器的x86仿真器(与ARM相同)
使用Android 4.4.2模拟Nexus 4
我尝试了Windows兼容性选项,并尝试以管理员身份运行,但没有运气.在显示错误之前,我看到相机灯短暂亮起然后关闭.您可以在生成错误的源代码中找到此注释:
/*
* At this point we need to grab a frame to properly setup framebuffer, and
* calculate pixel format. The problem is that bitmap information obtained
* from the driver doesn't necessarily match the actual bitmap we're going to
* obtain via capGrabFrame / capEditCopy / GetClipboardData
*/
/* …Run Code Online (Sandbox Code Playgroud) 我通过将前置摄像头设置为AVD Manager中的"webcam0"将网络摄像头连接到我的仿真器.当我从Android studio的AVD管理器或使用模拟器 - 相机前置摄像头0启动网络摄像头时,我会看到以下窗口:

当模拟器显示出错误时

请帮我解决这个问题.
在适用于 macOS 系统的 android studio 中,我尝试运行一个使用移动摄像头的应用程序。
当我使用虚拟设备运行应用程序时,一切正常,但是当我单击启动相机的按钮时,我的应用程序崩溃了。
我确信问题是我必须向 Android Studio 授予使用我计算机的网络摄像头的权限,但我没有任何通知,如果我尝试在系统配置菜单中手动添加此权限(系统首选项 - -> 安全和隐私 -> 隐私 -> 相机),我没有找到任何添加任何新应用程序的选项。
您知道我是否可以允许在任何新应用程序中手动使用相机吗?或者 Android Studio 问题是否还有其他问题?
预先非常感谢您。
有什么方法可以测试BiometricPrompt模拟器上提供的android人脸识别吗?
我知道命令:
亚行-e mu手指触摸
但这仅用于指纹验证。
android android-emulator android-biometric-prompt android-biometric
考虑以下布局(从此处拉出):

我想了解使此布局随屏幕尺寸缩放的原理。对于正方形,自定义onMeasure函数可以很好地工作:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
}
Run Code Online (Sandbox Code Playgroud)
下面的自定义Togglebuttons和Imagebuttons的宽度和高度应缩放以填充屏幕的其余部分,减去layout_margins,其中的文本和图像应缩放以填充按钮,以减少填充。外边缘也应缩放。
我的第一个想法是使用相对布局来放置按钮,并使用layout_margin / padding属性创建边距。但是,相对布局和layout_margin / padding需要固定的像素值,因此它们不可缩放。
然后,我想到了使用带有layout_weights的嵌套线性布局来定位按钮,并使用占位符视图来创建边距。尽管这些技术具有可伸缩性,但它们不适用于按钮,因为按钮具有许多需要固定像素值的属性(文本大小,图像大小,拐角半径等)。例如,此限制意味着以下xml:
<ToggleButton
android:layout_weight="1"
style="@style/myButton"
[...] />
<View
android:layout_weight="1"/>
<ImageButton
android:layout_weight="1"
style="@style/myButton"
[...] />
Run Code Online (Sandbox Code Playgroud)
不一定会使两个按钮以及它们之间的间距都相同。这完全取决于按钮的文本大小,图像大小等。
我看了这个问题,但是我觉得应该为这样一个简单的问题提供一个更简单的解决方案,即不需要使用过多的非XML。