Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试关闭摄像头led时,应用程序崩溃_Android_Camera_Led - Fatal编程技术网

Android 尝试关闭摄像头led时,应用程序崩溃

Android 尝试关闭摄像头led时,应用程序崩溃,android,camera,led,Android,Camera,Led,我有密码 @TargetApi(23) private void setTorchMode( CameraManager cameraManager, String id, boolean switchOn) throws CameraAccessException { try { final Method setTorchMode = cameraManager.getClass().getMethod("setTorchMode", String.

我有密码

 @TargetApi(23)
 private void setTorchMode( CameraManager cameraManager, String id, boolean switchOn) throws CameraAccessException {


      try {
            final Method setTorchMode = cameraManager.getClass().getMethod("setTorchMode", String.class, boolean.class);
            cameraManager.setTorchMode(cameraManager.getCameraIdList()[0],switchOn);
            callbackContext.success();
      } catch (IllegalArgumentException m){

      } catch (Throwable t) {
            callbackContext.error(t.getMessage());
      }
当我试图关闭摄像头led时,我崩溃了

FATAL EXCEPTION: main
Process: uk.co.sparkenergy.androidapp2, PID: 31200    java.lang.IllegalArgumentException: Receiver not registered: android.hardware.camera2.CameraManager$1@6e1ab65
                                                                               at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:793)
                                                                               at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1200)
                                                                               at android.hardware.camera2.CameraManager$3.run(CameraManager.java:1266)
                                                                               at android.os.Handler.handleCallback(Handler.java:815)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                               at android.os.Looper.loop(Looper.java:207)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5763)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

只有1台设备索尼e5633,请帮助)

公共无效开启手电筒(){


在某些设备上,如果手电筒被禁用,而您再次尝试禁用它,则应用程序会崩溃。因此,解决方案只是切换手电筒的状态。

添加一些解释,说明此答案如何帮助解决当前问题我在中兴刀片V7和索尼Xperia M5(Android 6.0)上也有同样的问题。这个问题来自Crashlytics。我目前无法复制它。到目前为止,我唯一的解决办法是对这些手机型号,甚至是7.0之前的所有Android版本使用旧的摄像头API。@Slav我发布了解决方案。如果手电筒亮了,你怎么能切换状态?你介意编辑答案并添加代码吗?谢谢,我已经2年了几年前,不幸的是,我没有代码,忘记了我是如何制作的。好吧,你的意思是(手电筒被禁用=关闭)?@blueware看起来像是的)我如何检查flash是否被禁用?你能帮我做些代码吗?
    try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            mCameraManager.setTorchMode(mCameraId, true);

            mTorchOnOffButton.setImageResource(R.drawable.on);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}


public void turnOffFlashLight() {

    try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            mCameraManager.setTorchMode(mCameraId, false);

            mTorchOnOffButton.setImageResource(R.drawable.off);

        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}