当前位置:操作系统 > 安卓/Android >>

android 中如何获取camera当前状态

android中,

调用摄像头需要判断当前摄像头的状态,没找到对应的方法,

采用了个折中方法。

在非main线程里调用Camera.open,catch 相应的RuntimeException,

 

 

[java]
<SPAN style="COLOR: #cc6600; FONT-SIZE: 14px">    <span style="white-space:pre">  </span>/** 
         * 测试当前摄像头能否被使用 
         * @return 
         */   
        public static boolean isCameraCanUse() {   
            boolean canUse = true;   
            Camera mCamera = null;   
            try {   
                // TODO camera驱动挂掉,处理??    
                mCamera = Camera.open();   
            } catch (Exception e) {   
                canUse = false;   
            }   
            if (canUse) {   
                mCamera.release();   
                mCamera = null;   
            }   
               
            return canUse;   
        }  </SPAN> 

    <span style="white-space:pre">  </span>/**
         * 测试当前摄像头能否被使用
         * @return
         */ 
        public static boolean isCameraCanUse() { 
            boolean canUse = true; 
            Camera mCamera = null; 
            try { 
                // TODO camera驱动挂掉,处理?? 
                mCamera = Camera.open(); 
            } catch (Exception e) { 
                canUse = false; 
            } 
            if (canUse) { 
                mCamera.release(); 
                mCamera = null; 
            } 
             
            return canUse; 
        } 

需要注意的是应该在自己程序的非UI线程中进行上面的判断,因为进入自己的UI线程会导致当前其他程序正在拍摄视频自动终止,
因为UI线程只能有一个在运行。

这个方法可用,但是如果摄像头没有被使用,open和release会白白消耗些资源,另外camera驱动进程挂掉的情况没有考虑

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,