如何检查设备是否有闪光指示Android

vli*_*o20 22 android android-camera

如何检查设备是否有摄像头(手电筒).我在谈论Android操作系统的设备?

我已经看到了一些解决方案,这些解决方案讨论了如何打开和关闭LED,但如果设备甚至没有LED,会发生什么.

打开我正在使用的相机 camera.open()

Eri*_*k B 44

其他答案

boolean hasFlash = this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
Run Code Online (Sandbox Code Playgroud)

不适用于新的2013 Nexus 7.以下代码可以使用:

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;
    }
Run Code Online (Sandbox Code Playgroud)

  • hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)在Wildfire S上不起作用.你的方法适用于我,在Nexus 4,Nexus 5,Xperia Z1,Note 3,Wildfire S和Galaxy S(i9000,无闪存)上测试过. (2认同)

PC.*_*PC. 6

getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)如果设备有闪存,则返回true.有关详细信息,请参阅

  • 这对某些手机不起作用,请参阅我的回答. (2认同)