2016-02-03 65 views
1

我在我的Android應用程序中使用https://github.com/dlazaro66/QRCodeReaderView(QR碼掃描儀)Android的棉花糖:了java.lang.RuntimeException:無法連接到相機服務

我mainfest權限如下:

<uses-permission android:name="android.permission.CAMERA" /> 
    <uses-feature android:name="android.hardware.camera" /> 
    <uses-feature android:name="android.hardware.camera.autofocus"/> 

和在搖籃我有以下代碼:

compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.gurkhatech.schoolmanagement" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 

我已經實現了代碼的Java爲:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_qr); 
     mQrCodeReaderView = (QRCodeReaderView)findViewById(R.id.qrdecoderview); 
     mQrCodeReaderView.setOnQRCodeReadListener(this); 

    } 

    @Override 
    public void onQRCodeRead(String text, PointF[] points) { 
     Toast.makeText(getApplicationContext(),text,Toast.LENGTH_LONG).show(); 

    } 

    @Override 
    public void cameraNotFound() { 

    } 

    @Override 
    public void QRCodeNotFoundOnCamImage() { 

    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     mQrCodeReaderView.getCameraManager().startPreview(); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     mQrCodeReaderView.getCameraManager().stopPreview(); 
    } 

但是,當我試圖運行活動我碰到下面的錯誤日誌中的logcat的

02-03 14:32:33.055 12673-12673/com.abc.def I/PlatformSupportManager: Using implementation class com.google.zxing.client.android.camera.open.GingerbreadOpenCameraInterface of interface com.google.zxing.client.android.camera.open.OpenCameraInterface for SDK 9 
02-03 14:32:33.057 12673-12673/com.abc.def I/GingerbreadOpenCamera: Opening camera #0 
02-03 14:32:33.058 12673-12673/com.abc.def W/CameraBase: An error occurred while connecting to camera: 0 
02-03 14:32:33.061 12673-12673/com.abc.def D/AndroidRuntime: Shutting down VM 
02-03 14:32:33.063 12673-12673/com.abc.def E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: com.abc.def, PID: 12673 
                       java.lang.RuntimeException: Fail to connect to camera service 
                        at android.hardware.Camera.<init>(Camera.java:495) 
                        at android.hardware.Camera.open(Camera.java:341) 
                        at com.google.zxing.client.android.camera.open.GingerbreadOpenCameraInterface.open(GingerbreadOpenCameraInterface.java:57) 
                        at com.google.zxing.client.android.camera.open.CameraManager.openDriver(CameraManager.java:77) 
                        at com.dlazaro66.qrcodereaderview.QRCodeReaderView.surfaceCreated(QRCodeReaderView.java:110) 
                        at android.view.SurfaceView.updateWindow(SurfaceView.java:582) 
                        at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:177) 
                        at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944) 
                        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2055) 
                        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 
                        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 
                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
                        at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
                        at android.view.Choreographer.doFrame(Choreographer.java:606) 
                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
                        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:5417) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

回答

5

閱讀從給定鏈路此步驟:

1:請求需要

2權限:處理權限請求迴應

click me

2

從Android上23,你需要每一個你的需要它的時候在運行時請求許可。 因此,在清單中聲明權限還不夠,您還需要在代碼中請求它。

請看一看這個問題的谷歌文檔: http://developer.android.com/intl/es/training/permissions/requesting.html

+0

那Activate中的最後一個參數怎麼樣ityCompat.requestPermissions(thisActivity,Mainfest.permission,SOME_OTHERE_TYPE_OF_CONSTANT);甚至當我只是複製並粘貼代碼它沒有工作 – erluxman

+0

當我用這個reqcode最後的整數字段int reqcode = ContextCompat.checkSelfPermission(QRActivity.this, Manifest.permission.CAMERA);它說引起:java.lang.IllegalArgumentException:只能使用較低的8位requestCode任何解決方案? – erluxman

相關問題