如何让APP获知有应用在请求Camera硬件资源?

Android 码拜 9年前 (2015-04-25) 957次浏览 0个评论

比如我在应用A中通过Camera.open打开了摄像机,应用B中也想使用摄像机,这时B中打开必然会失败。那么有什么方法或机制可以让A知道有应用要使用摄像头了,好让自己把资源释放掉供B使用?

如何让APP获知有应用在请求Camera硬件资源?

boolean isEnable = false;
 在A中读取isEnable,true则可以使用,false则不能使用。可以回调,也可以用临时文件。

如何让APP获知有应用在请求Camera硬件资源?
引用 1 楼 u012137924 的回复:

boolean isEnable = false;
 在A中读取isEnable,true则可以使用,false则不能使用。可以回调,也可以用临时文件。

问题不是能不能使用的问题,是要知道别人要使用。不过还是谢谢

如何让APP获知有应用在请求Camera硬件资源?
30分
试一下:
在一个非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值或发消息都可以,函数你自己定
        }
如何让APP获知有应用在请求Camera硬件资源?
10分
楼主这样的思路太过自我了,相当于偷看,
假如能够这样做,应用能够礼让自己的资源,那什么时候能够再次使用占用资源呢,等别人不用了吗?如果有两个应用都曾经礼让过后,资源空闲了,那由谁先来占用呢,问题会越来越多了.
通常情况下不同应用是不会同时打开的, 所以只要应用退到后台就要立即关闭Camera资源.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明如何让APP获知有应用在请求Camera硬件资源?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!