一种基于Android的摄像头控制方法技术

技术编号:9865008 阅读:143 留言:0更新日期:2014-04-02 22:04
本发明专利技术公开一种基于Android的摄像头控制方法,其包括:步骤1:建立摄像头资源分配表、应用程序运行队列和应用程序等待队列;所述摄像头资源分配表的信息包括摄像头名称、是否在使用的标志、使用该摄像头的应用程序名称以及该应用程序的优先级;应用程序运行队列表示使用摄像头的应用程序列表,应用程序等待队列表示等待使用摄像头的应用程序列表;步骤2:实时更新应用程序运行队列,如果有需要调用摄像头的新的应用程序A,则扫描摄像头资源分配表,判断是否申请调用成功。本发明专利技术解决了Android系统在多个应用对同一摄像头存在争用时的控制管理,避免用户手动释放占用摄像头资源的程序。

【技术实现步骤摘要】
—种基于Android的摄像头控制方法
本专利技术涉及,主要用于车载终端设备中摄像头的控制。
技术介绍
在Android的系统中,摄像头的使用需要用到系统提供的Camera对象进行操作,但是对于同一个摄像头,Camera对象都是独占使用,当一个程序打开一个摄像头之后,如果它不释放该摄像头,其它程序是不能使用的。在普通应用场景中,这不会带来太大的问题,可以通过关闭上一个占用摄像头的程序的方法来释放摄像头。但是,在一些车载终端使用的特殊场合,例如,如果用于拍照和倒车的摄像头是同一个摄像头,而且用户挂倒档,屏幕切换到倒车程序,但是,如果此时出现紧急情况,需要进行摄像头监控抓拍,就会出现不能抓拍的情况。当然,也可以分别安装拍照和倒车摄像头,但是这样做,一是增加成本,二是某些Android系统版本(例如Android2.3之前的版本)并不支持同时打开两个摄像头的方法。为此,申请号为201310312262.7的专利技术专利,公开了一种Android设备摄像头使用的控制方法,其方法包括如下内容:当应用程序启动时,读取预置的配置文件,所述预置的配置文件中配置了所述Android设备中所有需要使用所述摄像头的应用程序的信息;通过框架层判断启动的所述应用程序是否被配置在所述预置的配置文件中;如果启动的所述应用程序被配置在所述预置的配置文件中,通过所述框架层将所述摄像头单独分配给启动的所述应用程序使用。该专利技术使得Android系统上的应用程序在启动时就读取预置的配置文件,如果该应用程序被配置在该预置的配置文件中,则通过框架层将摄像头单独分配给该应用程序使用,解决多个应用程序同时占用摄像头时发生冲突的问题。但是该专利技术专利存在如下问题:该专利技术专利所述的配置文件的建立和读取由系统框架层完成,因此需要修改系统框架层,如果不是定制的Android操作系统,无法做到修改系统框架层代码;另外,该专利技术专利在摄像头资源被某一个应用程序占用之后,如果有其它应用程序需要使用摄像头,仅仅是简单粗暴的关闭上一个应用程序占用的摄像头,然后将摄像头分配给新的应用程序,没有优先级的判断,这种做法在某些应用场合是不恰当的。
技术实现思路
因此,针对上述的问题,本专利技术提出,采用基于静态优先级的抢占式调度算法,对系统的摄像头进行统一管理,满足某些应用场合下,多个应用对同一摄像头的争用的特殊要求,并且不需要修改框架层的代码。为了解决上述技术问题,本专利技术所采用的思路是,利用Android系统的服务组件,提供一个摄像头控制服务,其对外提供视频注册和注销接口,同时定义了广播消息,通过广播消息对各个应用进行停止、暂停、重新占用摄像头的操作。摄像头控制服务在内部维护一个摄像头资源分配表,对摄像头的使用进行统一管理。资源分配表的各个项包含资源名称(摄像头名称)、是否在使用、使用该资源的程序名称、程序优先级这些信息。在资源分配表中,可以通过资源名称对资源分配表的各个项进行检索、修改。在注册时,需要使用摄像头的应用程序将注册信息(包括应用程序名称、需要使用的资源名称、应用程序优先级)传入摄像头控制服务,摄像头控制服务采用静态优先级抢占式调度算法为程序分配摄像头控制权限,如果程序可以获取控制权,则注册成功,可以进行摄像头控制,同时通知其它占用摄像头的程序释放资源;如果注册失败,则将程序信息推入等待队列,等待资源争用。具体的,本专利技术所采用的技术方案是,,包括如下步骤: 步骤1:建立摄像头资源分配表、应用程序运行队列和应用程序等待队列;所述摄像头资源分配表的信息包括摄像头名称、是否在使用的标志、使用该摄像头的应用程序名称以及该应用程序的优先级;应用程序运行队列表示使用摄像头的应用程序列表,应用程序等待队列表示等待使用摄像头的应用程序列表; 步骤2:实时更新应用程序运行队列,如果有需要调用摄像头的新的应用程序A,则根据应用程序A的相关信息扫描摄像头资源分配表,该相关信息包括应用程序A的名称、优先级、其申请调用的摄像头信息;如果该应用程序A申请调用的摄像头未被占用,则转到步骤3,如果已经被占用,则判断占用该摄像头的应用程序B的优先级是否高于该应用程序A,如果是,则转到步骤4,如果不是,则暂停应用程序B,并将该应用程序B的相关信息写入应用程序等待队列; 步骤3:修改摄像头资源分配表,将该应用程序A的相关信息写入摄像头资源分配表,使用摄像头资源; 步骤4:将应用程序A的相关信息写入应用程序等待队列。进一步的,该摄像头控制方法还包括注销应用程序的步骤,该步骤包括如下过程:接收应用程序的注销请求,获得该应用程序的相关信息,该相关信息包括应用程序的名称、优先级、其使用的摄像头信息;修改摄像头资源分配表,删除该应用程序的相关信息;同时扫描应用程序等待队列,根据优先级选择下一个使用该摄像头的应用程序,并将该应用程序的相关信息写入摄像头资源分配表,同时从应用程序等待队列里面清除。也就是说,应用程序在两种情况下有机会获取摄像头的使用权:1、其它应用程序注销时;2、该应用程序再次运行(再次注册)。进一步的,所述步骤I中,应用程序等待队列中的应用程序根据优先级进行排序。首先对应用摄像头的各应用程序的优先级进行预先设置,例如设定优先级为1-10等10个级别,值越大表示优先级越高;然后将各应用程序顺序排列。本专利技术通过上述方案,与现有技术相比,专利技术技术的有益效果是:解决了 Android系统在多个应用对同一摄像头存在争用时的控制管理,避免用户手动释放占用摄像头资源的程序,使用户操作更加方便;提高了系统资源的复用度,避免不同应用场景需要安装不同摄像头的情况。【附图说明】图1为本专利技术的系统结构框图; 图2为本专利技术的摄像头控制方法中注册应用程序的流程图; 图3为本专利技术的注销应用程序的流程图。【具体实施方式】现结合附图和【具体实施方式】对本专利技术进一步说明。图1是本专利技术的基于Android的摄像头控制方法的系统结构框图,其包括应用程序单元、摄像头控制服务单元以及摄像头单元。其中,应用程序单元表示使用系统摄像头的各个应用程序。摄像头控制服务单元对应用程序单元提供注册和注销接口,控制应用程序停止、暂停或者重新运行;对摄像头资源的使用情况进行记录,实现摄像头控制流程。其中应用程序运行队列保存了系统中已经获得摄像头资源的应用程序信息(包括应用程序名称、所占用的摄像头资源、应用程序优先级);应用程序等待队列保存了因摄像头资源被占用而暂时不能使用摄像头资源的应用程序信息(包括应用程序名称、所申请的摄像头资源、应用程序优先级);摄像头资源列表记录了各个摄像头资源的使用情况。摄像头单元表示系统存在的可供各个应用程序使用的摄像头资源。图2是本专利技术的摄像头控制方法的处理流程,显示了应用程序通过摄像头控制服务进行注册的整个工作流程,包括如下步骤: A.增加摄像头控制服务,包括如下步骤: Al.初始化系统的摄像头资源列表,默认系统中各个摄像头资源处于空闲状态,可供各个应用程序使用; A2.初始化应用程序运行队列,队列默认为空,表示没有任何应用程序使用摄像头; A3.初始化应用程序等待队列,队列默认为空,表示没有任何应用程序申请摄像头资源; A4.定义系统中各个摄像头资源名称,对应用程序的优先级进行设置,设定优先本文档来自技高网
...

【技术保护点】
一种基于Android的摄像头控制方法,包括如下步骤:步骤1:建立摄像头资源分配表、应用程序运行队列和应用程序等待队列;所述摄像头资源分配表的信息包括摄像头名称、是否在使用的标志、使用该摄像头的应用程序名称以及该应用程序的优先级;应用程序运行队列表示使用摄像头的应用程序列表,应用程序等待队列表示等待使用摄像头的应用程序列表;步骤2:实实时更新应用程序运行队列,如果有需要调用摄像头的新的应用程序A,则根据应用程序A的相关信息扫描摄像头资源分配表,该相关信息包括应用程序A的名称、优先级、其申请调用的摄像头信息;如果该应用程序A申请调用的摄像头未被占用,则转到步骤3,如果已经被占用,则判断占用该摄像头的应用程序B的优先级是否高于该应用程序A,如果是,则转到步骤4,如果不是,则暂停应用程序B,并将该应用程序B的相关信息写入应用程序等待队列;步骤3:修改摄像头资源分配表,将该应用程序A的相关信息写入摄像头资源分配表,使用摄像头资源;步骤4:将应用程序A的相关信息写入应用程序等待队列。

【技术特征摘要】
1.一种基于Android的摄像头控制方法,包括如下步骤: 步骤1:建立摄像头资源分配表、应用程序运行队列和应用程序等待队列;所述摄像头资源分配表的信息包括摄像头名称、是否在使用的标志、使用该摄像头的应用程序名称以及该应用程序的优先级;应用程序运行队列表示使用摄像头的应用程序列表,应用程序等待队列表示等待使用摄像头的应用程序列表; 步骤2:实实时更新应用程序运行队列,如果有需要调用摄像头的新的应用程序A,则根据应用程序A的相关信息扫描摄像头资源分配表,该相关信息包括应用程序A的名称、优先级、其申请调用的摄像头信息;如果该应用程序A申请调用的摄像头未被占用,则转到步骤3,如果已经被占用,则判断占用该摄像头的应用程序B的优先级是否高于该应用程序A,如果是,则转到步骤4,如果不是,则暂停应用程序B,并将该应用程序B的相关信息写入应...

【专利技术属性】
技术研发人员:吕瑞明钟可华李琦陈义华杨磊鲁林华
申请(专利权)人:厦门雅迅网络股份有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1