Update sample prebuilts for mnc-docs
Synced to //developers/samples/android commit 243feb49e8d1753b746f69ae5519eaace0e50605. Change-Id: I9255d2ad8f68669d77124b7840184171fb5a801b
This commit is contained in:
@@ -48,6 +48,7 @@ import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v13.app.FragmentCompat;
|
||||
import android.support.v4.content.ContextCompat;
|
||||
import android.util.Log;
|
||||
import android.util.Size;
|
||||
import android.util.SparseIntArray;
|
||||
@@ -269,6 +270,11 @@ public class Camera2BasicFragment extends Fragment
|
||||
*/
|
||||
private Semaphore mCameraOpenCloseLock = new Semaphore(1);
|
||||
|
||||
/**
|
||||
* Whether the current camera device supports Flash or not.
|
||||
*/
|
||||
private boolean mFlashSupported;
|
||||
|
||||
/**
|
||||
* A {@link CameraCaptureSession.CaptureCallback} that handles events related to JPEG capture.
|
||||
*/
|
||||
@@ -568,6 +574,10 @@ public class Camera2BasicFragment extends Fragment
|
||||
mPreviewSize.getHeight(), mPreviewSize.getWidth());
|
||||
}
|
||||
|
||||
// Check if the flash is supported.
|
||||
Boolean available = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
|
||||
mFlashSupported = available == null ? false : available;
|
||||
|
||||
mCameraId = cameraId;
|
||||
return;
|
||||
}
|
||||
@@ -585,7 +595,7 @@ public class Camera2BasicFragment extends Fragment
|
||||
* Opens the camera specified by {@link Camera2BasicFragment#mCameraId}.
|
||||
*/
|
||||
private void openCamera(int width, int height) {
|
||||
if (getActivity().checkSelfPermission(Manifest.permission.CAMERA)
|
||||
if (ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
requestCameraPermission();
|
||||
return;
|
||||
@@ -691,8 +701,7 @@ public class Camera2BasicFragment extends Fragment
|
||||
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_MODE,
|
||||
CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
|
||||
// Flash is automatically enabled when necessary.
|
||||
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE,
|
||||
CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
|
||||
setAutoFlash(mPreviewRequestBuilder);
|
||||
|
||||
// Finally, we start displaying the camera preview.
|
||||
mPreviewRequest = mPreviewRequestBuilder.build();
|
||||
@@ -808,8 +817,7 @@ public class Camera2BasicFragment extends Fragment
|
||||
// Use the same AE and AF modes as the preview.
|
||||
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE,
|
||||
CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
|
||||
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE,
|
||||
CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
|
||||
setAutoFlash(captureBuilder);
|
||||
|
||||
// Orientation
|
||||
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
|
||||
@@ -844,8 +852,7 @@ public class Camera2BasicFragment extends Fragment
|
||||
// Reset the auto-focus trigger
|
||||
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER,
|
||||
CameraMetadata.CONTROL_AF_TRIGGER_CANCEL);
|
||||
mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE,
|
||||
CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
|
||||
setAutoFlash(mPreviewRequestBuilder);
|
||||
mCaptureSession.capture(mPreviewRequestBuilder.build(), mCaptureCallback,
|
||||
mBackgroundHandler);
|
||||
// After this, the camera will go back to the normal state of preview.
|
||||
@@ -877,6 +884,13 @@ public class Camera2BasicFragment extends Fragment
|
||||
}
|
||||
}
|
||||
|
||||
private void setAutoFlash(CaptureRequest.Builder requestBuilder) {
|
||||
if (mFlashSupported) {
|
||||
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE,
|
||||
CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves a JPEG {@link Image} into the specified {@link File}.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user