我正在尝试打开前置摄像头,我在设备huamate mate 10 lite上进行测试
这是我到目前为止尝试过的
此代码打开后置摄像头而不是前置摄像头,而且,我无法关闭意图,我正在使用thread.sleep 6秒钟,之后,摄像头应关闭
public void openFrontCamera(){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
intent.putExtra("android.intent.extras.CAMERA_FACING", android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);
intent.putExtra("android.intent.extras.LENS_FACING_FRONT", 1);
intent.putExtra("android.intent.extra.USE_FRONT_CAMERA", true);
} else {
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
}
startActivityForResult(intent, 100);
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
finish();
}
此代码应打开相机预览,但什么也没发生
private Camera openFrontFacingCamera()
{
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("sdsdf", "Camera failed to open: " + e.getLocalizedMessage());
}
}
}
return cam;
}
这是日志
I:摄像机编号:2
我:相机提醒结果:是
I:uid = 10233(u0_a233)com.zeroxctf.specialkids相同的2行
I:摄像机编号:2
I:打开相机:1,包名称:com.zeroxctf.specialkids
清单权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<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" />
感谢任何帮助