简体   繁体   English

android studio 在后台使用相机

[英]android studio use camera in background

I'm new to the Android studio and I was trying to make the camera work in the background.我是 Android 工作室的新手,我试图让相机在后台工作。 I just want the camera to get the feed activity of it but when I'm trying to open the app it just automatically stops.我只想让相机获取它的提要活动,但是当我尝试打开应用程序时,它会自动停止。 The camera is usually working fine if it's in the MainActivity but when I transfer it to my camera service the app automatically stops when I open.如果相机在 MainActivity 中,它通常可以正常工作,但是当我将它传输到我的相机服务时,应用程序会在我打开时自动停止。

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();
}
}

can someone give me some tips or pinpoint my problem?有人可以给我一些提示或查明我的问题吗?

Google's Android Pie update came with a new feature that prevents apps from running in the background from using the camera.谷歌的 Android Pie 更新带有一项新功能,可防止应用程序在后台运行以使用相机。 This feature ensures that you don't live in fear of malicious apps (that remain active in the background when your screen is turned off) capturing potentially unwanted scenes of you or your loved ones without authorization.此功能可确保您不必担心恶意应用程序(在屏幕关闭时仍处于后台活动状态)未经授权捕获您或您所爱的人可能不需要的场景。

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

if you are doing it for illegal purposes, don't do this -this type of problem is not liked by the StackOverflow community.如果您出于非法目的这样做,请不要这样做 - StackOverflow 社区不喜欢这种类型的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM