Abh*_*shi 9 android android-camera android-studio
我想制作一个应用程序,我必须只打开前置摄像头,我该怎么做呢intent?
private void captureImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
}
Run Code Online (Sandbox Code Playgroud)
sky*_*oid 14
java的
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = Uri.fromFile(getOutputPhotoFile());
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
startActivityForResult(intent, CAMERA_PHOTO_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
其他/替代解决方案
private Camera openFrontFacingCameraGingerbread() {
int cameraCount = 0;
Camera cam = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
cameraCount = Camera.getNumberOfCameras();
for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
cam = Camera.open(camIdx);
} catch (RuntimeException e) {
Log.e(TAG, "Camera failed to open: " + e.toString());
}
}
}
return cam;
}
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml文件中添加这些权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
Run Code Online (Sandbox Code Playgroud)
仅适用于Gingerbread(2.3)和Up Android版本.
否则你也可以查看这些例子
希望它可以帮助你..
使用Intent您打开标准的android相机应用程序。
从不使用 android.intent.extras.CAMERA_FACING属性-这是一个未公开说明的功能,从某些android版本开始停止工作。
要打开前置摄像头,您应该使用Camera API-做一些事情,例如选择前置摄像头,在视图中显示预览以及手动拍照。@skydroid的答案显示了如何找到前置摄像头。请注意,Camera.open()它不会像您期望的那样为用户打开相机,您应该手动显示预览。
另请注意,由于API级别为21,因此不建议使用Camera API,并且文档建议改为使用Camera 2 API。但是Camera API仍然具有完整的功能,并且如果您还想支持旧版本(<API级别21),则别无选择。
小智 3
try this:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
File outPutFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + Util.SD_CARD_PATH);
if (!outPutFile.exists()) {
outPutFile.mkdirs();
}
capturedImageUri = Uri.fromFile(File.createTempFile("packagename" + System.currentTimeMillis(), ".jpg", outPutFile));
intent.putExtra(MediaStore.EXTRA_OUTPUT, capturedImageUri);
startActivityForResult(intent, Util.REQUEST_CAMERA);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18102 次 |
| 最近记录: |