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在这种情况下,它是因为==而不是等于()哦,这就是为什么!谢谢