Не уверен, что мой ответ актуален после более чем полугода, но, возможно, он будет полезен.
Вы можете попробовать использовать Thread.sleep (1000); перед вызовом getSnapshot ().
Проблема может быть связана с этим фактом: «видоискатель должен фактически быть видимым на экране перед вызовом getSnapShot ().»
Так что если вы вызываете getSnapshot сразу после
UiApplication.getUiApplication().pushScreen(new TempScreen(cameraView));
камера не готова к следующему снимку.
Также вы действительно уверены, что API getSnapshot () поддерживается именно на вашем устройстве? Некоторые производители могут не поддерживать его, несмотря на то, что API определяет этот метод. Вы запускали System.getProperty ("video.snapshot.encodings") точно на том же устройстве, где вы тестировали getSnapshot ()?