当前位置: 代码迷 >> Android >> 怎么让APP获知有应用在请求Camera硬件资源
  详细解决方案

怎么让APP获知有应用在请求Camera硬件资源

热度:49   发布时间:2016-04-28 01:37:39.0
如何让APP获知有应用在请求Camera硬件资源?
比如我在应用A中通过Camera.open打开了摄像机,应用B中也想使用摄像机,这时B中打开必然会失败。那么有什么方法或机制可以让A知道有应用要使用摄像头了,好让自己把资源释放掉供B使用?
------解决思路----------------------
试一下:
在一个非UI线程使用

public boolean isCameraCanUse() {   
            boolean canUse = true;   
            Camera mCamera = null;   
            try {   
                mCamera = Camera.open();   
            } catch (Exception e) {   
                canUse = false;//异常,占用了。可以往UI线程发消息
            }   
            if (canUse) {   
                mCamera.release();   //未占用
                mCamera = null;   
            }   
            return canUse;   //返回boolean值或发消息都可以,函数你自己定
        }

------解决思路----------------------
楼主这样的思路太过自我了,相当于偷看,
假如能够这样做,应用能够礼让自己的资源,那什么时候能够再次使用占用资源呢,等别人不用了吗?如果有两个应用都曾经礼让过后,资源空闲了,那由谁先来占用呢,问题会越来越多了.
通常情况下不同应用是不会同时打开的, 所以只要应用退到后台就要立即关闭Camera资源.