保持整个活动Android摄像头开启(Keeping Android camera open acr

2019-10-21 02:16发布

我试图打开Android相机,并保持它在后台跨多个活动运行不断地为各种长期运行的框架消费者对于玻璃和非玻璃的设备。 这意味着我不能简单地关闭相机时,一个活动停止和重新打开下一个启动时它; 它必须保持打开的整个时间。 我试图创建一个使用的上下文(而不是一个Activity)的申请一个SurfaceView,并直接将其添加到窗口管理器。 这并不让我保持相机打开,但只有当我将它添加为系统的覆盖,这使得实际活动的顶部,使它们无法使用。 其他的事情我都试过,没有工作:

  • 使用活动生命周期回调找到活动,他们拿出,并把他们的内容意见前(系统覆盖覆盖所有)
  • 调用SetWillNotDraw(false)并重写OnDraw()的自定义SurfaceView的不实际呈现什么
  • 调用SetWillNotDraw(false)并重写OnDraw()的自定义SurfaceView来呈现一个黑色矩形覆盖屏幕,不透明和透明
  • 设置预览大小为(1,1)打开相机后(仍然呈现全屏)
  • 用我的初步活动为背景创建SurfaceView并将其添加到窗口管理器与非接触式标志的应用程序类型(甚至推到后后在上面仍然呈现,并且消耗输入)
  • 在设定的位置WindowManager.LayoutParams熄灭屏幕(仍呈现在屏幕上)

我跑出来的想法,我不知道我想要什么,甚至有可能。 有什么建议么?

Answer 1:

使用服务来处理任何特定活动的范围之外的预览画面。 为了避免与隐藏SurfaceView问题,使用表面纹理代替,只是不要将它连接到任何东西。

见https://github.com/Affectiva/android-sdk-samples/tree/master/ServiceFrameDetectorDemo这种方法的一个例子。



文章来源: Keeping Android camera open across activities