gpt4 book ai didi

android - 如何使用相机 Intent 在android中启动前置摄像头?

转载 作者:行者123 更新时间:2023-11-29 17:59:12 41 4
gpt4 key购买 nike

我正在开发一个应用程序,我想在单击按钮时打开前置摄像头(如果该设备上存在前置摄像头)。

我已经使用了此代码,它适用于具有 OS 3.2.1 的华硕平板电脑。但相同的代码不适用于 OS 4.2.1。

我想要适用于所有 android 版本的代码。
请帮我解决这个问题。

以下是我的代码-

Intent takePictureIntent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);

takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(f));
Log.v("", "Camera Id-" + camId);

if (!TextUtils.isEmpty(camera)) {
if (camera.equalsIgnoreCase("Front")) {
Log.v("", "Inside if");
takePictureIntent.putExtra(
"android.intent.extras.CAMERA_FACING",
Camera.CameraInfo.CAMERA_FACING_FRONT);

} else {
Log.v("", "Inside else");
takePictureIntent.putExtra(
"android.intent.extras.CAMERA_FACING",
Camera.CameraInfo.CAMERA_FACING_BACK);

}
}
startActivityForResult(takePictureIntent, actionCode);

最佳答案

注意:此功能在 Gingerbread and Up Android 版本中可用。
Intent 以自己的方式处理相机 Action 。当您使用 SurfaceView 来利用相机功能时,将使用此技术。

 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.getLocalizedMessage());
}
}
}

return cam;}

在 list 文件中:
<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" />

关于android - 如何使用相机 Intent 在android中启动前置摄像头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17229126/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com