Al *_*ton 21

您可以使用以下内容

context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
Run Code Online (Sandbox Code Playgroud)

如果闪存可用则返回true,否则返回false.

有关详细信息,请参阅http://developer.android.com/reference/android/content/pm/PackageManager.html.

  • 即使没有闪存支持,我也可以使用便宜的中文安卓平板电脑,这样可以恢复正常.我还发现getSupportedFlashModes()在这种情况下返回null,因此可能会用于仔细检查flash是否可用. (2认同)
  • Nexus 7返回true,然后getSupportedFlashModes()返回一个包含一个条目的列表.一个读取"off"的字符串.:-( (2认同)

rez*_*e08 5

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

要么

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)