71 lines
2.5 KiB
Java
71 lines
2.5 KiB
Java
package com.yanzhenjie.permission.checker;
|
|
|
|
import android.content.Context;
|
|
import android.hardware.Camera;
|
|
import android.view.SurfaceHolder;
|
|
import android.view.SurfaceView;
|
|
|
|
/* loaded from: classes2.dex */
|
|
class CameraTest implements PermissionTest {
|
|
private static final Camera.PreviewCallback b = new Camera.PreviewCallback() { // from class: com.yanzhenjie.permission.checker.CameraTest.1
|
|
@Override // android.hardware.Camera.PreviewCallback
|
|
public void onPreviewFrame(byte[] bArr, Camera camera) {
|
|
}
|
|
};
|
|
private static final SurfaceHolder.Callback c = new SurfaceHolder.Callback() { // from class: com.yanzhenjie.permission.checker.CameraTest.2
|
|
@Override // android.view.SurfaceHolder.Callback
|
|
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i2, int i3) {
|
|
}
|
|
|
|
@Override // android.view.SurfaceHolder.Callback
|
|
public void surfaceCreated(SurfaceHolder surfaceHolder) {
|
|
}
|
|
|
|
@Override // android.view.SurfaceHolder.Callback
|
|
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
|
|
}
|
|
};
|
|
private Context a;
|
|
|
|
CameraTest(Context context) {
|
|
this.a = context;
|
|
}
|
|
|
|
@Override // com.yanzhenjie.permission.checker.PermissionTest
|
|
public boolean a() throws Throwable {
|
|
Camera camera;
|
|
SurfaceHolder holder = new SurfaceView(this.a).getHolder();
|
|
holder.addCallback(c);
|
|
try {
|
|
camera = Camera.open();
|
|
try {
|
|
camera.setParameters(camera.getParameters());
|
|
camera.setPreviewDisplay(holder);
|
|
camera.setPreviewCallback(b);
|
|
camera.startPreview();
|
|
return true;
|
|
} catch (Throwable unused) {
|
|
try {
|
|
boolean z = !this.a.getPackageManager().hasSystemFeature("android.hardware.camera");
|
|
if (camera != null) {
|
|
camera.stopPreview();
|
|
camera.setPreviewDisplay(null);
|
|
camera.setPreviewCallback(null);
|
|
camera.release();
|
|
}
|
|
return z;
|
|
} finally {
|
|
if (camera != null) {
|
|
camera.stopPreview();
|
|
camera.setPreviewDisplay(null);
|
|
camera.setPreviewCallback(null);
|
|
camera.release();
|
|
}
|
|
}
|
|
}
|
|
} catch (Throwable unused2) {
|
|
camera = null;
|
|
}
|
|
}
|
|
}
|