[发明专利]一种在Linux兼容Android系统时使Android支持摄像头热插拔的方法有效
申请号: | 202210034222.X | 申请日: | 2022-01-13 |
公开(公告)号: | CN114047964B | 公开(公告)日: | 2022-05-10 |
发明(设计)人: | 游远;马超;黄彩龙;黄晟;李翔;杨硕;彭韬;赵坤;谢辉军;杨陈博寰 | 申请(专利权)人: | 麒麟软件有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F13/40 |
代理公司: | 北京汇智英财专利代理事务所(普通合伙) 11301 | 代理人: | 陈践实 |
地址: | 300450 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 兼容 android 系统 支持 摄像头 热插拔 方法 | ||
1.一种在Linux兼容Android系统时使Android支持摄像头热插拔的方法,其特征在于,所述方法应用在Linux兼容Android系统的运行环境中;
所述方法包括以下步骤:
步骤S1:Linux系统兼容Android的运行环境准备;
步骤S2:创建Linux端摄像头服务端,用于接收Android端的打开摄像头的请求并将打开摄像头的请求对应得到的摄像头的文件描述符回传给Android端;
步骤S3:修改Android端的摄像头硬件抽象层,用于将打开摄像头的请求发送给Linux端,并接收Linux端发来的摄像头的文件描述符;
步骤S4:Android端得到操作摄像头的权限:
步骤S401:Android 应用发起访问摄像头的请求;
步骤S402:Android的摄像头服务框架判断当前是否有应用占用摄像头资源,如没有,则直接向下传递打开摄像头的请求;如有,则关闭当前应用的摄像头资源,然后向底层重新发送打开摄像头的请求;
步骤S403:当Android应用发出打开摄像头的请求时,通过Android下的摄像头子系统调用摄像头硬件抽象层中的open函数,再通过socket通信将打开摄像头的请求发送给Linux端;
步骤S404:当Linux端接收到Android端的打开摄像头的请求时,利用Linux中的open函数打开摄像头;
步骤S405:利用Linux中的open函数打开摄像头后得到对应的摄像头的文件描述符,所述摄像头的文件描述符通过socket通信服务端以消息的形式回传给Android端;
步骤S406:Android端利用recvmsg函数等待Linux端摄像头服务端回传的消息,回传的消息在结构体msghdr中,再从结构体msghdr中解析出所述摄像头的文件描述符;
步骤S407:Android端得到摄像头的文件描述符,并具备与Linux端相同的权限以操作摄像头;Android端利用ioctl函数操作摄像头执行获取设备属性、获取图像数据。
2.根据权利要求1所述的一种在Linux兼容Android系统时使Android支持摄像头热插拔的方法,其特征在于:所述步骤S1的运行环境准备包括如下具体步骤:
步骤S101:在Linux系统上使用docker容器加载Android镜像,让Linux和Android系统共享同一Linux内核;
步骤S102:在docker容器中启动Android的运行环境。
3.根据权利要求1所述的一种在Linux兼容Android系统时使Android支持摄像头热插拔的方法,其特征在于:所述步骤S2中,创建Linux端摄像头服务端,包括如下具体步骤:
步骤S201:在Linux端创建摄像头常驻服务,随Linux系统开机启动;
步骤S202:在摄像头常驻服务中开启线程,在线程中创建socket通信服务端,socket通信服务端用来监听Android端发来的打开摄像头的请求,并将创建的socket文件链接到docker容器内,使得Android端通过所述socket文件与Linux端进行socket通信。
4.根据权利要求3所述的一种在Linux兼容Android系统时使Android支持摄像头热插拔的方法,其特征在于:所述步骤S3包括如下具体步骤:
步骤S301: Android端摄像头硬件抽象层修改打开摄像头的open函数,在Android端创建socket通信客户端,
步骤S302:Android端的socket通信客户端与Linux端的socket通信服务端建立连接。
5.根据权利要求1所述的一种在Linux兼容Android系统时使Android支持摄像头热插拔的方法,其特征在于:在步骤S404中:插入摄像头时Linux系统在/dev目录下形成插入的摄像头的设备节点路径,open函数中表示摄像头的设备节点路径包括/dev/video0、/dev/video2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210034222.X/1.html,转载请声明来源钻瓜专利网。