First i use CameraManager.open(cameraid,StateCallbackObject,handler)
to use camera,and then i turn off the screen
or switch screen to display phone desktop or other app,after around 1 minute camera access is abrupted and onError
method in StateCallbackObject
is invoked.
If i keep my screen on and keep the app displaying on screen,it can keep using camera without interruption or error.
my question is : how can i keep the camera opened after screen off or app is not focused.
Excerpt of the code:
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
callback = new AvailabilityCallback(){
@Override
public void onCameraAvailable(String cameraId){
iscamerafree = true;
}
@Override
public void onCameraUnavailable(String cameraId){
iscamerafree = false;
}
};
new CameraHolder();
}
}
CameraHolder.java
public class CameraHolder {
CameraHolder(){
while(iscamerafree==true){
manager.openCamera(cameraid, new CameraDevice.StateCallback() {
@Override
public void onOpened(CameraDevice camera) {
//do some stuff
}
@Override
public void onDisconnected(CameraDevice camera) {}
@Override
public void onError(CameraDevice camera, int error) {
//after screen off or app not focused on screen for 1 min,this is invoked
}
},handler);
}
}
}