瑞芯微Rockchip开发者社区
直播中

程成

12年用户 502经验值
私信 关注
[问答]

怎样去解决[RK3288][Android6.0] 接UVC摄像头用原生Camera apk打开直接闪退的问题呢

怎样去解决[RK3288][Android6.0] 接UVC摄像头用原生Camera apk打开直接闪退的问题呢?

回帖(1)

郑盼

2022-3-10 09:52:45
Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

现象:
接UVC摄像头,用原生Camera apk打开直接闪退,关键log:

01-01 12:31:08.247  2475  2624 I CameraManager: Using legacy camera HAL.

01-01 12:31:08.251  2496  2496 I CameraService: CameraService::connect call (PID 2475 "com.android.camera2", camera ID 0) for HAL version default and Camera API version 1

01-01 12:31:08.251  2496  2496 E CameraService: CameraService::connect X (PID 2475) rejected (cannot connect from device user 0, currently allowed device users: )

01-01 12:31:08.252  2475  2625 W Camera  : An error occurred while connecting to camera 0: -1 (Operation not permitted)

分析:
log的意思是连接上来的client也就是camera apk user值是0, 而camera service当前允许的值列表确是空的。
理论上currently allowed device users的值应该也是0.
开机的时候用adb shell dumpsys media.camera查看,确实是0,但是打开之后却变成了空。


原因:
刚开始没找到原因就直接在开机初始化的时候直接默认设置当前用户为0,第一次确实可以打开,但是二次又提示连接失败了。
后来发现是Audio影响了Camera,因为每个service模块都要设置user,比如Camera, 有如下调用流程


由于系统Audio模块还没有移植,那么它在service.onStartUser这一阶段会出错,从而影响了后面的Camera Service调用。

解决方法:
关闭音频的调用,包括解锁声,触摸按键声。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分