Я пытаюсь создать активность для Android, которая обращается к фонарику / факелу любой камеры на устройстве, в котором она есть.CameraManager имеет метод, который позволяет вам включить его с именем setTorchMode, который принимает идентификатор камеры в виде строки, и логическое значение, в котором для состояния фонарика указано значение true или false.К сожалению, когда я пытаюсь использовать этот метод, он выдает ошибку
Cannot resolve method 'setTorchMode(java.lang.String, boolean)'
У меня есть все эти импортированные
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.hardware.camera2.*;
Я добавил * позже, чтобы увидеть, что я просто пропалправильный класс.Вот как выглядит метод
public void turnOnLight(View view) {
String[] camIDs;
try {
camIDs = camMan.getCameraIdList();
if(camIDs.length > 0) {
for (String camera : camIDs) {
int intCamID = Integer.parseInt(camera);
CameraCharacteristics characteristics = camMan.getCameraCharacteristics(camera);
boolean flashAvailable = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
if(flashAvailable) {
camMan.setTorchMode(camera, true); //here is the error
}
}
}
} catch (CameraAccessException camae) {
camae.printStackTrace();
} catch (NullPointerException npe) {
npe.printStackTrace();
}
}
У меня camMan глобально определен и инициализирован в моем init с этой строкой
camMan = (CameraManager) getSystemService(CAMERA_SERVICE);
Кто-нибудь знает, почему это может происходить?