Skip to content

Commit 74127d4

Browse files
authored
More accurate condition to detect emulator
Previous commit, 6f39f9a, tries to fix the color issue for emulator. But the condition for detecting emulator is incomplete, e.g. it stops working for emulators using Google Play, whose Build.BRAND=="google". https://stackoverflow.com/a/21505193 shows a more accurate condition for this.
1 parent 92c0709 commit 74127d4

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

modules/java/generator/src/java/android+JavaCameraView.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,14 @@ protected boolean initializeCamera(int width, int height) {
147147
Size frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height);
148148

149149
/* Image format NV21 causes issues in the Android emulators */
150-
if (Build.BRAND.equalsIgnoreCase("generic") || Build.BRAND.equalsIgnoreCase("Android"))
150+
if (Build.FINGERPRINT.startsWith("generic")
151+
|| Build.FINGERPRINT.startsWith("unknown")
152+
|| Build.MODEL.contains("google_sdk")
153+
|| Build.MODEL.contains("Emulator")
154+
|| Build.MODEL.contains("Android SDK built for x86")
155+
|| Build.MANUFACTURER.contains("Genymotion")
156+
|| (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
157+
|| "google_sdk".equals(Build.PRODUCT))
151158
params.setPreviewFormat(ImageFormat.YV12); // "generic" or "android" = android emulator
152159
else
153160
params.setPreviewFormat(ImageFormat.NV21);

0 commit comments

Comments
 (0)