微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法在某些设备上连接到相机服务

如何解决无法在某些设备上连接到相机服务

我的 QrScannerActivity 代码

override fun onRequestPermissionsResult(
    requestCode: Int,permissions: Array<out String>,grantResults: IntArray
) {
    super.onRequestPermissionsResult(requestCode,permissions,grantResults)
    viewmodel.onRequestPermissionsResult(requestCode,grantResults)
}

视图模型代码

fun onRequestPermissionsResult(requestCode: Int,grantResults: IntArray) {
    if (requestCode == CAMERA_PERMISSION_REQUEST_CODE
        && grantResults.firstOrNull() == PackageManager.PERMISSION_GRANTED
    ) {
        permissionGrantEvent.postUnitEvent()
    } else {
        errorMessageResId.postValue(R.string.errors_permission_denied)
    }
}

错误信息 1:

致命异常:java.lang.RuntimeException:传递结果失败 结果信息{who=@android:requestPermissions:,request=328,result=-1,data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS(有 附加)}} 到活动 {com.mandarine.authenticator/com.mandarine.authenticator.features.qr.QrScannerActivity}: java.lang.RuntimeException:无法连接到相机服务 android.app.ActivityThread.deliverResults(ActivityThread.java:5360) 在 android.app.ActivityThread.handleSendResult(ActivityThread.java:5401) 在 android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267) 在 android.os.Handler.dispatchMessage(Handler.java:107) 在 android.os.Looper.loop(Looper.java:237) 在 android.app.ActivityThread.main(ActivityThread.java:8154) 在 java.lang.reflect.Method.invoke(Method.java) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

错误信息2:

致命异常:java.lang.RuntimeException:无法连接到相机 服务 在 android.hardware.Camera.(Camera.java:545) 在 android.hardware.Camera.open(Camera.java:385) 在 com.google.android.gms.vision.CameraSource.zzc(CameraSource.java:82) 在 com.google.android.gms.vision.CameraSource.start(CameraSource.java:22) 在 com.mandarine.authenticator.features.qr.QrScannerActivity.startCameraSource(QrScannerActivity.java:174) 在 com.mandarine.authenticator.features.qr.QrScannerActivity.access$startCameraSource(QrScannerActivity.java:54) 在 com.mandarine.authenticator.features.qr.QrScannerActivity$setupSurface$1.surfaceCreated(QrScannerActivity.java:142) 在 android.view.SurfaceView.updateWindow(SurfaceView.java:666) 在 android.view.SurfaceView$3.onPreDraw(SurfaceView.java:199) 在 android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:921) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2215) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1230) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6731) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:777) 在 android.view.Choreographer.doCallbacks(Choreographer.java:590) 在 android.view.Choreographer.doFrame(Choreographer.java:560) 在 android.view.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:763) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:145) 在 android.app.ActivityThread.main(ActivityThread.java:6117) 在 java.lang.reflect.Method.invoke(Method.java) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

在 AndroidManifest.xml 中我有一个权限:

<uses-permission android:name="android.permission.CAMERA" />

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。