判断摄像头有没有闪光灯

最近写一个程序,需要根据条件打开摄像头的闪光灯。

在 nexus 5 上没问题,但是到了 nexus 7 就不行。

找了几个网上传的方案,发现都不行。 Android 不同的发行版本对标准API 的支持不一样,连 N7 都不标准:

比如我用这段代码检查时,它竟然不是 null


            if (parameters.getFlashMode() == null) {
                return false;
            }


解决方案:

public boolean hasFlash() {
            if (camera == null) {
                return false;
            }

            Camera.Parameters parameters = camera.getParameters();

            if (parameters.getFlashMode() == null) {
                return false;
            }

            List<String> supportedFlashModes = parameters.getSupportedFlashModes();
            if (supportedFlashModes == null || supportedFlashModes.isEmpty() || supportedFlashModes.size() == 1 && supportedFlashModes.get(0).equals(Camera.Parameters.FLASH_MODE_OFF)) {
                return false;
            }

            return true;
        }


你可能感兴趣的:(Camera,摄像头)