Java Android pei的sinch视频通话摄像头权限问题(9)
更新 我正在开发一个需要摄像头许可的小应用程序。我可以处理运行时权限,但真正的问题是,当我中继到Java Android pei的sinch视频通话摄像头权限问题(9),java,android,video-streaming,sinch,Java,Android,Video Streaming,Sinch,更新 我正在开发一个需要摄像头许可的小应用程序。我可以处理运行时权限,但真正的问题是,当我中继到Sinchpayload并进入incomming call活动时。此活动应请求权限(摄像头和其他2个权限)。但它没有显示权限对话框,而是因为安全异常而使我的应用程序崩溃只有在我请求相机权限时才会发生这种情况-其他权限不会发生这种情况,并且只有在Android 9上使用摄像头“2”Api-Android 8.1及更低版本工作正常SINCH样本推送仍会出现此问题。权限对话框将显示是否像往常一样有目的地启动
Sinchpayload
并进入incomming call活动时。此活动应请求权限(摄像头和其他2个权限)。但它没有显示权限对话框,而是因为安全异常而使我的应用程序崩溃只有在我请求相机权限时才会发生这种情况-其他权限不会发生这种情况,并且只有在Android 9上使用摄像头“2”Api-Android 8.1及更低版本工作正常SINCH样本推送仍会出现此问题。权限对话框将显示是否像往常一样有目的地启动活动。这就是错误:
-------- beginning of crash
2019-02-10 22:11:55.390 2113-2681/com.example.myapp.app E/AndroidRuntime: FATAL EXCEPTION: VideoCapturerThread
Process: com.example.myapp.app, PID: 2113
java.lang.SecurityException: validateClientPermissionsLocked:1054: Caller "com.example.myapp.app" (PID 10319, UID 2113) cannot open camera "1" without camera permission
at android.hardware.camera2.CameraManager.throwAsPublicException(CameraManager.java:747)
at android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:405)
at android.hardware.camera2.CameraManager.openCameraForUid(CameraManager.java:567)
at android.hardware.camera2.CameraManager.openCamera(CameraManager.java:495)
at org.webrtc.Camera2Session.openCamera(Unknown Source:44)
at org.webrtc.Camera2Session.start(Unknown Source:60)
at org.webrtc.Camera2Session.<init>(Unknown Source:73)
at org.webrtc.Camera2Session.create(Unknown Source:17)
at org.webrtc.Camera2Capturer.createCameraSession(Unknown Source:17)
at org.webrtc.CameraCapturer$5.run(Unknown Source:52)
at android.os.Handler.handleCallback(Handler.java:891)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:207)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: android.os.ServiceSpecificException: validateClientPermissionsLocked:1054: Caller "com.example.myapp.app" (PID 10319, UID 2113) cannot open camera "1" without camera permission (code 1)
at android.os.Parcel.createException(Parcel.java:1967)
at android.os.Parcel.readException(Parcel.java:1921)
at android.os.Parcel.readException(Parcel.java:1871)
at android.hardware.ICameraService$Stub$Proxy.connectDevice(ICameraService.java:343)
at android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:369)
at android.hardware.camera2.CameraManager.openCameraForUid(CameraManager.java:567)
at android.hardware.camera2.CameraManager.openCamera(CameraManager.java:495)
at org.webrtc.Camera2Session.openCamera(Unknown Source:44)
at org.webrtc.Camera2Session.start(Unknown Source:60)
at org.webrtc.Camera2Session.<init>(Unknown Source:73)
at org.webrtc.Camera2Session.create(Unknown Source:17)
at org.webrtc.Camera2Capturer.createCameraSession(Unknown Source:17)
at org.webrtc.CameraCapturer$5.run(Unknown Source:52)
at android.os.Handler.handleCallback(Handler.java:891)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:207)
at android.os.HandlerThread.run(HandlerThread.java:65)`
应用权限对话框仅在前台显示。请发布相关代码,您在哪里发现了错误。写这篇文章时,我正在使用手机。我将在明天发布我的代码。谢谢,先生,但是我开始了这个活动。我在活动中请求权限,而不是在后台。谢谢你,注意这只发生在安卓9上,安卓8可以正常工作
if (Build.VERSION.SDK_INT>=23)
{
if (GlobalConstants.isAllPermissionsGrantedBefore_Video_Call(this)==false)
ActivityCompat.requestPermissions(
Video_incomming_call.this,
GlobalConstants.mPermissions_Video_Chat,
GlobalConstants.VIDEO_RECIEVE_CODE);
else {
Start_Calling();
}
} else Start_Calling();