Обновление: это уже не лучший ответ. Пожалуйста, проголосуйте за мой другой ответ .
obj instanceof Promise
должен это сделать. Обратите внимание, что это может работать надежно только с собственными обещаниями es6.
Если вы используете прокладку, библиотеку обещаний или что-то еще, притворяющееся перспективным, тогда может быть более целесообразным протестировать «thenable» (что-нибудь с методом .then
), как показано в других ответах здесь.
Вы пытались сначала использовать автофокус, вот способ сделать это:
private lateinit var cameraLocal: Camera
//...
/**
* Setting the right parameters in the camera
*/
private fun applyCameraSettings(quality: Int) {
val params = getCameraParams()
params.setPictureSize(getDefaultWidth(), getDefaultHeight())
params.pictureFormat = PixelFormat.JPEG
params.jpegQuality = quality
params.focusMode = if (params.focusMode == Camera.Parameters.FOCUS_MODE_AUTO) Camera.Parameters.FOCUS_MODE_AUTO else params.focusMode
cameraLocal.parameters = params
}
/**
* get the camera parameters
*/
private fun getCameraParams(): Camera.Parameters {
return cameraLocal.parameters
}