Java android studio在后台使用摄像头

Java android studio在后台使用摄像头,java,android,Java,Android,我是Android studio的新手,我试着让相机在后台工作。我只是想让相机获得它的提要活动,但当我试图打开应用程序时,它会自动停止。如果相机在主活动中,它通常工作正常,但当我将其转移到相机服务时,当我打开时,应用程序会自动停止 public class CameraService extends Service implements CameraBridgeViewBase.CvCameraViewListener2{ private static final String TAG = &

我是Android studio的新手,我试着让相机在后台工作。我只是想让相机获得它的提要活动,但当我试图打开应用程序时,它会自动停止。如果相机在主活动中,它通常工作正常,但当我将其转移到相机服务时,当我打开时,应用程序会自动停止

public class CameraService extends Service implements CameraBridgeViewBase.CvCameraViewListener2{

private static final String TAG = "MainActivity";
private JavaCameraView mOpenCvCameraView;
private Mat mRgba;
public CameraService(){

}
@Override
public IBinder onBind(Intent intent) {

    throw new UnsupportedOperationException("Not yet implemented");
}

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status){
        switch (status) {
            case LoaderCallbackInterface.SUCCESS:{
                Log.i(TAG, "OpenCV loaded successfully");
                mOpenCvCameraView.enableView();
            }
            break;
            default:{
                super.onManagerConnected(status);
            }
            break;
        }
    }
};


@Override
public void onCreate() {

    mOpenCvCameraView = (JavaCameraView) mOpenCvCameraView.findViewById(R.id.javacameraview);
    mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
    mOpenCvCameraView.setCvCameraViewListener(this);
    mOpenCvCameraView.setCameraIndex(CameraBridgeViewBase.CAMERA_ID_FRONT);
    Toast.makeText(this, "The new Service was Created", Toast.LENGTH_LONG).show();

}



private void setContentView(int activity_main) {
}

@Override
public void onStart(Intent intent, int startId) {


    Toast.makeText(this, " Service Started", Toast.LENGTH_LONG).show();

}

@Override
public void onDestroy() {
    Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
    super.onDestroy();
    if (mOpenCvCameraView != null)
        mOpenCvCameraView.disableView();

}

@Override
public void onCameraViewStarted(int width, int height) {
    mRgba = new Mat(height, width, CvType.CV_8UC4);
}

@Override
public void onCameraViewStopped() {
    mRgba.release();
}

@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
    return inputFrame.rgba();
}
}

有人能给我一些提示或指出我的问题吗?

谷歌的Android Pie更新附带了一个新功能,可以防止应用程序在后台运行时使用摄像头。此功能可确保您不必担心恶意应用程序(当您的屏幕关闭时,这些应用程序在后台仍处于活动状态)在未经授权的情况下捕获您或您所爱的人可能不需要的场景

error in your code: you are using an unassigned object to find the id

如果你这样做是出于非法目的,不要这样做——StackOverflow社区不喜欢这种类型的问题。

谷歌的Android Pie更新附带了一项新功能,防止应用程序在后台运行时使用摄像头。此功能可确保您不必担心恶意应用程序(当您的屏幕关闭时,这些应用程序在后台仍处于活动状态)在未经授权的情况下捕获您或您所爱的人可能不需要的场景

error in your code: you are using an unassigned object to find the id

如果您是出于非法目的,请不要这样做-StackOverflow社区不喜欢这种类型的问题。

为什么要使用未分配的对象来查找id?在后台运行相机有什么正当理由?不要这样做。为什么要使用未分配的对象来查找id?在后台运行相机有什么正当的理由?不要这样做。