著录项信息
专利名称 | Android操作系统对手机口袋状态的检测方法 |
申请号 | CN201010292718.4 | 申请日期 | 2010-09-27 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2011-04-06 | 公开/公告号 | CN102006356A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04W88/02 | IPC分类号 | H;0;4;W;8;8;/;0;2查看分类表>
|
申请人 | 浙江大学 | 申请人地址 | 浙江省杭州市西湖区浙大路38号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江大学 | 当前权利人 | 浙江大学 |
发明人 | 陈天洲;曹满;黄文;胡同森 |
代理机构 | 杭州宇信知识产权代理事务所(普通合伙) | 代理人 | 张宇娟 |
摘要
本发明公开了一种Android操作系统对手机口袋状态的检测方法,其在Android操作系统中安装环境光线传感器和距离传感器的驱动程序,操作系统读取环境光线传感器和距离传感器的输出参数以及控制传感器的开启和关闭,在Android操作系统中创建了口袋状态检测服务进程,所述口袋状态检测服务进程每隔一定时间间隔就读取环境光线传感器和距离传感器的输出参数,若环境光线传感器的输出表示最弱光线状态,而且距离传感器的输出表示被覆盖状态,则执行睡眠模式的切换。本发明克服了传统智能手机操作系统仅仅依靠闲置超时来判断是否要切换到睡眠状态的局限性,能够大幅度提高Android智能手机的待机和使用时间。
1.一种Android操作系统对手机口袋状态的检测方法,其特征在于包括如下步骤:
1)在Android操作系统中安装环境光线传感器和距离传感器的驱动程序,操作系统读取环境光线传感器和距离传感器的输出参数以及控制传感器的开启和关闭;所述环境光线传感器的输出参数为周边环境光线强度等级,距离传感器的输出参数为手机屏幕被覆盖状态;所述手机口袋状态指环境光线传感器检测到最弱等级的周边环境光线强度和距离传感器检测到手机屏幕被大面积覆盖的状态,口袋状态是用户的衣服口袋里、各种箱包中、专用手机套中黑暗而且相对密闭的环境;
2)在Android操作系统中增加口袋状态检测服务进程,创建口袋状态检测服务进程时需要注册环境光线传感器和距离传感器的使用,同时要获得以下特殊权限:读取环境光线传感器的输出、读取距离传感器的输出、将手机切换到睡眠模式;
3)所述口袋状态检测服务进程每隔一定时间间隔就读取环境光线传感器和距离传感器的输出参数,若环境光线传感器的输出表示最弱光线状态,而且距离传感器的输出表示被覆盖状态,则执行睡眠模式的切换;所述口袋状态检测服务进程有如下特征: 当手机处于非口袋状态时,且当口袋状态检测服务进程检测到用户无操作的闲置时间超过设定的时间范围时,将手机切换到睡眠模式;当包括语音通话、多媒体播放的应用程序正在运行时,口袋状态检测服务进程进入暂停工作状态,不检测传感器的输出也不进行睡眠模式切换;
步骤1)包括进一步包括如下步骤:
1)在Android平台源代码的device目录下加入传感器的驱动程序源代码或二进制内核模块,并修改MK编译配置文件;
2)Android系统编译成功后环境光线传感器和距离传感器的控制接口将统一集成在android.hardware.Sensor和android.hardware.SensorEvent以及安卓硬件传感器管理类库android.hardware.SensorManager三个系统类库里;
3)检测传感器的输出参数,当传感器类型是环境光线传感器时,通过SensorEvent.values[0]读取环境光线传感器的输出值;当传感器类型是距离传感器时,通过SensorEvent.values[0]读取距离传感器的输出值;
4)通过SensorManager.registerListener()注册传感器,实现传感器的启用;
5)通过SensorManager.unregisterListener()注销传感器,实现传感器的关闭。
Android操作系统对手机口袋状态的检测方法\n技术领域\n[0001] 本发明涉及基于谷歌Android操作系统的智能手机技术领域,特别是涉及一种Android系统对手机口袋状态的检测方法。\n背景技术\n[0002] Android为谷歌开发的基于Linux内核的开源手机操作系统,2007年11月开放手机联盟(Open Handset Alliance)的成立正式宣布了Android的诞生,在2008年10月正式投入市场。目前中国移动的OPhone及其OMS(OpenMobile System)就是基于Android深度定制的实际产品。Android是一个开源手机操作系统,它不存在任何以往阻碍移动产业创新的专有权障碍,是首个为移动终端打造的真正开放和完整的移动操作系统。在全世界范围内,摩托罗拉、HTC(多普达)、联想、三星等众多公司都已经推出Android手机产品和上网本产品,而且有越来越多加速上升的趋势。\n[0003] Android的完全开源性使得Android的开发环境比iPhone OS开放的多。Android给每个开发者提供了开发创新软件的平台。谷歌已经开发好的大量现成的应用软件,同时可以直接使用谷歌很多的在线服务。谷歌提供了基于Eclipse的完整开发环境,模拟器,文档,帮助,示例。同时,Android可以紧密的与Gmail、谷歌地图等其他谷歌服务结合,给用户提供了便捷的同步和网络服务,是云计算模式的成功模型之一。Android市场是Android应用程序下载和发布的平台,为用户和开发者提供了便利的发布和下载方式。\n[0004] 与其他操作系统的智能手机一样,Android智能手机存在多个工作能耗状态。目前市场上的ARM架构处理器的Android智能手机,其低功耗的睡眠状态所消耗电量是正常工作状态的十分之一以下。手机在不使用时切换到睡眠状态,可以大幅度降低手机耗电量,延长待机时间。在传统方法中手机由正常工作状态切换到睡眠状态的判断依据,都是通过闲置超时,即在一定时间内如果手机没有接受到任何用户的操作,就将手机置于睡眠状态。\n这种方法虽然在大多数情况下都可以满足用户需要,但是仍然有一定的局限性。它并不是最优的睡眠状态切换方法,在闲置超时的时间范围内手机处于正常工作状态,此时消耗的电量仍然是一种浪费,可以进一步节省。当用户将手机放置于口袋、手机套、箱包中时,就意味着手机已经被闲置,可以立即切换到睡眠状态。而在Android智能手机中实时判断手机是否处于口袋状态已经成为可能。\n[0005] Android智能手机相对于传统手机的一个重要特点是在硬件上集成了大量的传感器,这主要包括重力传感器,加速度传感器,环境光线传感器,距离传感器。利用这些传感器可以实现手机对于周围环境的精确感知,让手机更加的智能化。在本发明中,正是利用的环境光线传感器和距离传感器实现的手机的口袋状态检测。\n[0006] 环境光线传感器通常用于液晶显示屏的背光灯亮度控制。通过测量周边环境的光线强度,让液晶显示屏自动调节背光灯亮度,匹配人眼的需求,减少眼睛的疲劳,同时延长电池寿命。然而,手机操作系统在搭配了相应的驱动程序后,可以读取环境光线传感器测量到的周边环境光线强度的数值,在其他功能上利用光线强度这一参数。\n[0007] 距离传感器是新型智能手机特有的一种传感器,它的作用是检测用户面部与屏幕的距离。当通话时用户面部与屏幕较近,此时可以关闭显示屏幕而达到节电的目的,同时关闭屏幕可以实现屏幕键盘锁,防止用户面部接触屏幕而产生误操作。类似环境光线传感器,操作系统也可以通过驱动程序读取距离传感器的参数,实现其他功能。\n发明内容\n[0008] 本发明的目的在于提供一种Android操作系统对手机口袋状态的检测方法,它利用Android智能手机的环境光线传感器和距离传感器,实现对于手机是否处于口袋状态的检测。\n[0009] 本发明解决其技术问题采用的技术方案如下:\n[0010] 1)手机的口袋状态的定义\n[0011] 当手机被放置于用户的衣服口袋里、各种箱包中、专用手机套中这样类似的黑暗而且相对密闭的环境中时,用户将不再使用手机;在本发明中称这种状态为口袋状态,其最主要特征是黑暗的周边环境光线和对手机较为密闭的包裹;当手机处于口袋状态时,其环境光线传感器将会检测到最弱等级的周边环境光线强度,其距离传感器将会检测到手机屏幕被大面积覆盖;当环境光线传感器处于最弱光线状态、距离传感器处于被覆盖状态时,可以认为手机处于口袋状态;对于特殊应用环境,可以在操作系统的软件层次做例外处理,防止通过环境光线传感器和距离传感器对于口袋状态的错误判断;\n[0012] 特殊的应用环境的一个简单例子是在夜间户外进行语音通话。此时环境光线较低,同时用户的脸部覆盖手机屏幕,对于环境光线传感器和距离传感器来说此时的状态和口袋状态是一致的。因此仅仅依靠这两个传感器的输出参数会出现对口袋状态的错误判断。解决方法是对语音通话进行例外处理,当用户进行语音通话时操作系统不去判断手机是否处于口袋状态。\n[0013] 2)在Android操作系统中安装环境光线传感器和距离传感器的驱动程序[0014] Android操作系统使用的是修改过的Linux内核,根据手机具体的硬件配置,需要在内核中安装相应的环境光线传感器和距离传感器的驱动程序模块;在正确安装驱动程序模块之后,操作系统可以读取环境光线传感器和距离传感器的输出参数,而且能控制传感器的开启和关闭;\n[0015] 3)在Android操作系统中增加口袋状态检测服务进程\n[0016] 在Android操作系统中增加一个特殊的服务进程,此服务进程专门用于手机的口袋状态检测,在操作系统后台一直运行;口袋状态检测服务进程具有较高的权限,可以随时读取环境光线传感器和距离传感器的输出参数,还可以将手机切换到睡眠模式;\n[0017] 4)口袋状态检测服务进程在检测到口袋状态时将手机切换到睡眠模式[0018] 口袋状态检测服务进程每隔一定时间间隔就读取环境光线传感器和距离传感器的输出参数,若环境光线传感器的输出表示最弱光线状态,而且距离传感器的输出表示被覆盖状态,则执行睡眠模式的切换;口袋状态检测服务进程对于特殊应用程序进行例外处理,特殊应用程序包括语音通话、多媒体播放;当特殊应用程序正在运行时,口袋状态检测服务进程进入暂停工作状态,不检测传感器的输出也不进行睡眠模式切换;\n[0019] 5)利用闲置超时检测方法实现非口袋状态的睡眠模式切换\n[0020] 口袋状态检测服务进程同时检测用户无操作的闲置时间,当在设定的时间范围内没有任何用户的操作时就将手机切换到睡眠模式;当手机处于非口袋状态但是长时间没有任何用户操作时,手机也可以自动切换到睡眠模式。\n[0021] 本发明具有的有益的效果是:\n[0022] 本发明利用Android智能手机中的距离传感器和环境光线传感器实现对手机是否处于口袋中的检测,可以由操作系统自动处理切换到口袋状态时所需要的操作。当手机被用户放置到口袋中时,利用本发明可以立即将手机切换到睡眠状态,从而大幅度减少电量损耗。本发明克服了传统智能手机操作系统仅仅依靠闲置超时来判断是否要切换到睡眠状态的局限性,能够大幅度提高Android智能手机的待机和使用时间。\n附图说明\n[0023] 图1是本发明实施例的整体流程图。\n具体实施方式\n[0024] 本实施例的具体实施过程如下:\n[0025] 1)在Android操作系统中安装环境光线传感器和距离传感器的驱动程序[0026] Android操作系统使用的是修改过的Linux内核,根据手机具体的硬件配置,需要在内核中安装相应的环境光线传感器和距离传感器的驱动程序模块;在成功安装驱动程序模块之后,操作系统可以读取环境光线传感器和距离传感器的输出参数,而且能控制传感器的开启和关闭。这个步骤是整体流程图的第一个步。\n[0027] 以HTC Desire智能手机为例,在硬件上采用了Capella CM3602型号芯片的环境光线传感器和距离传感器,在Android平台源代码的device目录下加入传感器的驱动程序源代码或二进制内核模块,并修改MK编译配置文件。Android系统编译成功后环境光线传感器和距离传感器的控制接口将统一集成在android.hardware.Sensor和android.hardware.SensorEvent以及android.hardware.SensorManager三个系统类库里。当传感器类型是环境光线传感器时,可以通过SensorEvent.values[0]读取环境光线传感器的输出值;当传感器类型是距离传感器时,可以通过SensorEvent.values[0]读取距离传感器的输出值。通过SensorManager.registerListener()注册传感器,实现传感器的启用;通过SensorManager.unregisterListener()注销传感器,实现传感器的关闭。\n[0028] 2)在Android操作系统中增加口袋状态检测服务进程\n[0029] 在Android操作系统中增加一个特殊的服务进程,此服务进程专门用于手机的口袋状态检测,在操作系统后台一直运行;口袋状态检测服务进程具有较高的权限,可以随时读取环境光线传感器和距离传感器的输出参数,还可以将手机切换到睡眠模式。这个步骤是整体流程图的第二步。\n[0030] 以HTC Desire智能手机为例,创建口袋状态检测服务进程时需要注册环境光线传感器和距离传感器的使用,同时要获得以下特殊权限:读取环境光线传感器的输出、读取距离传感器的输出、将手机切换到睡眠模式。Android操作系统默认没有给后台服务进程读取距离传感器输出的权限,需要在创建服务进程时特别声明。\n[0031] 3)口袋状态检测服务进程在检测到口袋状态时将手机切换到睡眠模式[0032] 口袋状态检测服务进程每隔一定时间间隔就读取环境光线传感器和距离传感器的输出参数,若环境光线传感器的输出表示最弱光线状态,而且距离传感器的输出表示被覆盖状态,则执行睡眠模式的切换;口袋状态检测服务进程对于特殊应用程序进行例外处理,特殊应用程序包括语音通话、多媒体播放;当特殊应用程序正在运行时,口袋状态检测服务进程进入暂停工作状态,不检测传感器的输出也不进行睡眠模式切换。这个步骤在整体流程图中属于的左边的分支和上方的第一次判断。\n[0033] 在实际Android手机中,环境光线传感器的输出值为周边环境光线的照度,单位是勒克斯,而且提供了若干个照度值的宏定义。比如SensorManager.LIGHT_SUNLIGHT的值为110000,表示在阳光直射下的输出值;SensorManager.LIGHT_NO_MOON的值为0.0010,表示夜晚没有月光时的输出值。SensorManager.LIGHT_NO_MOON是所有宏定义中最小的值,当输出值小于等于它时,环境光线传感器检测到最弱的光线状态。\n[0034] 距离传感器在实际Android手机中的输出值一般是一位二进制的0或1,表示没有被覆盖或者被覆盖。通过Sensor.getMaximumRange()函数得到的返回值是没有被覆盖的状态,小于这个返回值则为被覆盖的状态。\n[0035] 以HTC Desire智能手机为例,在口袋状态检测服务进程中设置一个倒计时定时器,默认时间间隔可由用户设置,比如2秒(见图1中的“等待固定时间间隔”)。倒计时2秒过后,服务进程读取环境光线传感器和距离传感器的输出参数(见图1中“读取环境光线传感器和距离传感器的输出参数”)。当环境光线传感器的输出小于等于SensorManager.LIGHT_NO_MOON时,表示最弱光线状态;当距离传感器的输出小于Sensor.getMaximumRange()返回值时,表示近距离被覆盖状态。当读取到的输出参数满足口袋状态的最弱光线、被覆盖的条件时(见图1中左侧分支的两个判断),口袋状态检测服务进程调用系统函数将手机切换到睡眠模式(见图1最后一步“将手机切换到睡眠模式”)。若不是处于口袋状态,则将倒计时定时间重置为2秒,然后重新倒计时(见图1左侧分支两次判断结果为“否”之后返回到“等待固定时间间隔”)。下面的伪代码说明了这个关键步骤:\n[0036] \n[0037] 特殊应用程序中的语音通话,前面已经解释过原因;多媒体播放包括视频播放和音频播放。视频播放时用户显然不需要将手机置于睡眠模式,即使没有任何用户操作也要保持手机处于工作模式;音频播放用户也不需要将手机置于睡眠模式,仅仅需要将屏幕关闭。因此对于多媒体播放程序需要进行例外处理。口袋状态检测服务进程在例外应用程序运行时暂停工作,让语音通话或播放器程序自己控制手机模式。这个特殊处理的步骤在流程图的上方的第一次判断“特殊应用程序是否在运行”,口袋状态检测服务程序将一直等待特殊应用程序结束后才继续下面的两个分支。\n[0038] 4)利用闲置超时检测方法实现非口袋状态的睡眠模式切换\n[0039] 口袋状态检测服务进程同时检测用户无操作的闲置时间,当在设定的时间范围内没有任何用户的操作时就将手机切换到睡眠模式;当手机处于非口袋状态但是长时间没有任何用户操作时,手机也可以自动切换到睡眠模式。这个步骤与口袋状态检测步骤是相互独立的,无论是否处于口袋状态都要检测闲置时间。这个步骤实际上是将现有技术“闲置超时睡眠切换”整合到口袋状态检测服务进程中,口袋状态检测服务进程同时负责口袋状态情况下的睡眠模式切换和闲置超时情况下的睡眠模式切换。这个步骤是流程图中的右侧分支。\n[0040] 以HTC Desire智能手机为例,在很多情况下手机不处于口袋状态、用户长时间无操作时也需要将手机自动切换到睡眠模式,例如手机被用户闲置在桌子上。在口袋状态检测服务进程中加入另外一个倒计时定时器,时间间隔可由用户设置,比如设置为20秒(见图1中“闲置超时定时器重新开始倒计时”)。当20秒内没有检测到任何用户操作时,就调用系统函数将手机切换到睡眠模式(见图1中“有用户操作发生”判断结果为“否”,然后“闲置超时定时器超时”,最后“将手机切换到睡眠模式”);如果检测到用户操作,则重置20秒倒计时定时器,重新倒计时(见图1中“有用户操作发生”判断结果为“是”,然后返回到“闲置超时定时器重新开始倒计时”)。
法律信息
- 2017-11-10
未缴年费专利权终止
IPC(主分类): H04W 88/02
专利号: ZL 201010292718.4
申请日: 2010.09.27
授权公告日: 2013.07.24
- 2013-07-24
- 2011-05-25
实质审查的生效
IPC(主分类): H04M 1/725
专利申请号: 201010292718.4
申请日: 2010.09.27
- 2011-04-06
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-07-29
|
2008-01-23
| | |
2
| | 暂无 |
2009-09-16
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |