xuyisheng / ZXingLib

lib of zxing based on 3.1. You can see it in http://blog.csdn.net/eclipsexys/article/details/47834865
379 stars 149 forks source link

Android 6.0 小米点击扫描弹出Camera error对话框提醒错误 #5

Open xubuhang opened 8 years ago

xubuhang commented 8 years ago

报告问题:Android 6.0 小米手机,app权限使用时询问,点击扫描弹出Camera error对话框; 06-27 18:46:09.899 29888-29888/com.xxx D/MediaPlayer: setSubtitleAnchor in MediaPlayer 06-27 18:46:09.942 29888-29888/com.xxx I/com.xxx.zxing.camera.open.OpenCameraInterface: Opening camera #0 06-27 18:46:09.943 29888-29888/com.xxx W/CameraBase: An error occurred while connecting to camera: 0 06-27 18:46:09.944 29888-29888/com.xxx W/CaptureActivity: Unexpected error initializing camera java.lang.RuntimeException: Fail to connect to camera service at android.hardware.Camera.(Camera.java:520) at android.hardware.Camera.open(Camera.java:360) at com.xxx.zxing.camera.open.OpenCameraInterface.open(OpenCameraInterface.java:61) at com.xxx.zxing.camera.open.OpenCameraInterface.open(OpenCameraInterface.java:81) at com.xxx.zxing.camera.CameraManager.openDriver(CameraManager.java:76) at com.xxx.zxing.activity.CaptureActivity.initCamera(CaptureActivity.java:205) at com.xxx.zxing.activity.CaptureActivity.surfaceCreated(CaptureActivity.java:162) at android.view.SurfaceView.updateWindow(SurfaceView.java:597) at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:179) at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2091) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1143) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6054) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:860) at android.view.Choreographer.doCallbacks(Choreographer.java:672) at android.view.Choreographer.doFrame(Choreographer.java:608) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5456) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:735) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 06-27 18:46:09.950 29888-29888/com.szmedchat.childpump.doctor V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@46e644f 06-27 18:46:09.951 29888-29888/com.szmedchat.childpump.doctor V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@9aaf7dc 06-27 18:46:49.446 29888-29894/com.szmedchat.childpump.doctor W/art: Suspending all threads took: 5.599ms

tqlmorepassion commented 8 years ago

@xubuhang 6..0需要自己做权限处理,你搜索关键字,很容易就出来方案了。根据业务不同,你可以做授权的不同操作。

xubuhang commented 8 years ago

关键是我下载Zxing官方Demo弹出权限对话框点击运行可以扫描。而ZxingLib不会弹出权限对话框,而是直接报错。

tqlmorepassion commented 8 years ago

@xubuhang 这个是Google6.0权限需要单独处理的原因,跟zxing没有关系。你看看zxingDemo的代码,应该是对权限做了处理的吧。如果你项目中有很敏感的权限,没有做处理,在6.0上面应该是会崩溃的。你看下面这篇文章。 http://www.jianshu.com/p/dbe4d37731e6/

xubuhang commented 8 years ago

好,谢谢回复。

tonjies commented 6 years ago

已经做了动态处理,还是报错,小米7.0