Java 为什么';t parameters.getFlashMode()==Camera.parameters.FLASH\u MODE\u OFF是否返回真值?
我试图确定闪光灯是开还是关,这样我就可以用一个按钮来开关它。这是我的密码:Java 为什么';t parameters.getFlashMode()==Camera.parameters.FLASH\u MODE\u OFF是否返回真值?,java,android,camera,android-camera,Java,Android,Camera,Android Camera,我试图确定闪光灯是开还是关,这样我就可以用一个按钮来开关它。这是我的密码: Camera cam = getCameraInstance(); //A method that opens the cam Camera.Parameters parameters = cam.getParameters(); System.out.println("Current flash mode " + parameters.getFlashMode());
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);
前两个系统的输出为off
。当然,我假设,因为它们都返回一个关闭
字符串,将=
操作符放在它们之间,将返回真
(这样我就可以检查flash是否打开),但它返回假
。知道为什么吗
我的目标是api 16并在棉花糖设备上进行测试如果您检查,您将看到这些参数是
字符串
s,并且您不会将Java中的字符串与=
进行比较。您可以使用。是否检查了参数返回的内容。getFlashMode()
?我猜它会返回null
,这是因为您的设备不支持闪存模式设置代码>是一个off
字符串。我假设如果它为null,它将返回一个null
string在这种情况下,它是因为==而不是等于()哦,这就是为什么!谢谢