Android 阻止我的小部件的相机对象(getParameters失败(空参数))

Android 阻止我的小部件的相机对象(getParameters失败(空参数)),android,widget,flashlight,Android,Widget,Flashlight,我正在尝试制作一个小部件,用于从主屏幕关闭和打开手电筒。我的问题是,我找不到为小部件阻止摄像头的方法。如果在小部件手电筒打开时打开本机相机,我的小部件将丢失相机实例,如果再次打开小部件,我将无法恢复它 当我尝试从小部件恢复相机实例时,我获得下一个错误: E/摄像机:错误2 getParameters失败(空参数) 我正在尝试使用函数lock()(当手电筒打开时)和unlock()(当手电筒关闭时)但对我不起作用。我建议您在其他应用程序使用相机实例时释放它: @Override protected

我正在尝试制作一个小部件,用于从主屏幕关闭和打开手电筒。我的问题是,我找不到为小部件阻止摄像头的方法。如果在小部件手电筒打开时打开本机相机,我的小部件将丢失相机实例,如果再次打开小部件,我将无法恢复它

当我尝试从小部件恢复相机实例时,我获得下一个错误:

E/摄像机:错误2 getParameters失败(空参数)


我正在尝试使用函数lock()(当手电筒打开时)和unlock()(当手电筒关闭时)但对我不起作用。

我建议您在其他应用程序使用相机实例时释放它:

@Override
protected void onPause() {
    super.onPause();
    releaseCamera();              // release the camera immediately on pause event
}

private void releaseCamera(){
    if (mCamera != null){
        mCamera.release();        // release the camera for other applications
        mCamera = null;
    }
}
然后,当您移回小部件时,再次在onResume()中打开相机

参考: