【发布时间】:2018-03-23 11:08:09
【问题描述】:
我正在尝试确定闪光灯是打开还是关闭,以便通过一个按钮我可以打开和关闭它。这是我的代码:
Camera cam = getCameraInstance(); //A method that opens the cam
Camera.Parameters parameters = cam.getParameters();
System.out.println("Current flash mode " + parameters.getFlashMode());
System.out.println("flash mode off equals to : " + Camera.Parameters.FLASH_MODE_OFF);
System.out.println(parameters.getFlashMode() == Camera.Parameters.FLASH_MODE_OFF);
前两个 syso 的输出是 off。自然地,我假设因为它们都返回一个off 字符串,将== 运算符放在它们之间将返回true(因此允许我检查flash 是否打开)但它返回false。知道为什么吗?
我的目标是 api 16 并在 Marshmallow 设备上进行测试
【问题讨论】:
-
你检查过
parameters.getFlashMode()返回的内容吗?我的猜测是它返回null,那是因为您的设备不支持闪光模式设置。 -
System.out.println("Current flash mode " + parameters.getFlashMode());的输出是一个off字符串。我假设它为 null 它将返回一个null字符串 -
在这种情况下,是因为 == 而不是 equals()
-
哦,这就是为什么!谢谢。
标签: java android camera android-camera