我正在开发一款Android应用程序,目前在模拟器和Nexus 5设备上看起来很不错。
但是,在全新的三星J5设备上,我确实遇到了相机问题。 以下是Logcat的输出:
08-31 15:36:28.367 6551-6731/be.dsoft.debouwenconstructieapp E/CameraInstance﹕ Failed to open camera
java.lang.RuntimeException: Fail to connect to camera service
at android.hardware.Camera.<init>(Camera.java:550)
at android.hardware.Camera.open(Camera.java:390)
at com.google.zxing.client.android.camera.open.OpenCameraInterface.open(OpenCameraInterface.java:83)
at com.journeyapps.barcodescanner.camera.CameraManager.open(CameraManager.java:121)
at com.journeyapps.barcodescanner.camera.CameraInstance$3.run(CameraInstance.java:158)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
当然我的权限设置正确,因为它在其他设备上工作,但请参阅下文:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
以下代码给出了一个问题:
// Gets the view in the scanner will be showed.
barcodeScannerView = (CompoundBarcodeView)findViewById(R.id.barcode_scanner_view);
// Start capturing a set a callback to catch the results.
capture = new CaptureManager(this, barcodeScannerView);
capture.initializeFromIntent(getIntent(), savedInstanceState);
barcodeScannerView.decodeSingle(callback);
注意:在我的Nexus 5设备上,我运行的是Android 6,我遇到了同样的问题。 经过几个小时的搜索,我终于发现,自Android 6以来,您可以控制每个应用程序的权限(在那里,相机被禁用)。启用此功能后,它在我的设备上运行正常。
现在,三星设备运行的是Android 5,其中应用程序权限无法更改,但是,我确实看到了上述错误。
Anoyone知道什么是错的?
亲切的问候