diff --git a/src/android/camera_capabilities.cpp b/src/android/camera_capabilities.cpp
index 238b44db..ba6adf73 100644
--- a/src/android/camera_capabilities.cpp
+++ b/src/android/camera_capabilities.cpp
@@ -1347,7 +1347,7 @@ std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplatePreview() con
 	 * CameraMetadata is capable to resize the container on the fly, if the
 	 * number of entries get exceeded.
 	 */
-	auto requestTemplate = std::make_unique<CameraMetadata>(21, 36);
+	auto requestTemplate = std::make_unique<CameraMetadata>(22, 38);
 	if (!requestTemplate->isValid()) {
 		return nullptr;
 	}
@@ -1368,6 +1368,28 @@ std::unique_ptr<CameraMetadata> CameraCapabilities::requestTemplatePreview() con
 	requestTemplate->addEntry(ANDROID_CONTROL_AE_TARGET_FPS_RANGE,
 				  entry.data.i32, 2);
 
+	/*
+	 * Get thumbnail sizes from static metadata and add the first non-zero
+	 * size to the template.
+	 */
+	found = staticMetadata_->getEntry(ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,
+					  &entry);
+	ASSERT(found && entry.count >= 4);
+	unsigned int j = 0;
+	while (j < entry.count / 2) {
+		if (entry.data.i32[j] == 0 || entry.data.i32[j + 1] == 0) {
+			j += 2;
+			continue;
+		}
+
+		requestTemplate->addEntry(ANDROID_JPEG_THUMBNAIL_SIZE,
+					  entry.data.i32 + j, 2);
+		break;
+	}
+
+	requestTemplate->addEntry(ANDROID_JPEG_THUMBNAIL_SIZE,
+				  entry.data.i32 + 2, 2);
+
 	uint8_t aeMode = ANDROID_CONTROL_AE_MODE_ON;
 	requestTemplate->addEntry(ANDROID_CONTROL_AE_MODE, aeMode);
 
