我试图打开Android相机并让它在后台不断运行,以便为Glass和非Glass设备的各种长时间运行的框架消费者提供多种活动。这意味着我不能简单地在一个活动停止时关闭相机,并在下一个活动开始时重新打开它;它必须保持开放的整个时间。我尝试使用Application作为Context(而不是Activity)创建一个SurfaceView,并将其直接添加到WindowManager中。这确实让我保持相机打开,但是只有当我将它添加为系统覆盖时,它才会在实际活动之上呈现并使它们无法使用。我试过的其他东西都不起作用:
SetWillNotDraw(false)
并覆盖自定义SurfaceView的OnDraw()
以实际不呈现任何内容SetWillNotDraw(false)
并覆盖自定义SurfaceView的OnDraw()
以呈现覆盖屏幕的黑色矩形,包括不透明和透明WindowManager.LayoutParams
中的位置设置为离屏(仍在屏幕上呈现)我的想法已经不多了,我不确定我想要的是什么。有什么建议吗?
答案 0 :(得分:0)
使用服务处理任何特定活动的上下文之外的预览框架。为了避免隐藏SurfaceView的问题,请使用SurfaceTexture,而不要将其连接到任何东西。
有关此方法的示例,请参阅https://github.com/Affectiva/android-sdk-samples/tree/master/ServiceFrameDetectorDemo。