CN115326194B - 一种环境光传感器校准方法、电子设备和存储介质 - Google Patents
一种环境光传感器校准方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115326194B CN115326194B CN202211263763.6A CN202211263763A CN115326194B CN 115326194 B CN115326194 B CN 115326194B CN 202211263763 A CN202211263763 A CN 202211263763A CN 115326194 B CN115326194 B CN 115326194B
- Authority
- CN
- China
- Prior art keywords
- target
- ambient light
- sensor
- calibration
- detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 237
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000001514 detection method Methods 0.000 claims abstract description 314
- 230000007246 mechanism Effects 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 73
- 230000015654 memory Effects 0.000 claims description 35
- 239000011230 binding agent Substances 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 37
- 238000004519 manufacturing process Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 19
- 230000003287 optical effect Effects 0.000 description 19
- 238000012423 maintenance Methods 0.000 description 16
- 238000013461 design Methods 0.000 description 14
- 238000012795 verification Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 13
- 230000007613 environmental effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 235000019557 luminance Nutrition 0.000 description 9
- 238000012360 testing method Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000004020 luminiscence type Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002620 method output Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01J—MEASUREMENT OF INTENSITY, VELOCITY, SPECTRAL CONTENT, POLARISATION, PHASE OR PULSE CHARACTERISTICS OF INFRARED, VISIBLE OR ULTRAVIOLET LIGHT; COLORIMETRY; RADIATION PYROMETRY
- G01J1/00—Photometry, e.g. photographic exposure meter
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Controls And Circuits For Display Device (AREA)
- Liquid Crystal Display Device Control (AREA)
Abstract
本申请提供一种环境光传感器校准方法、电子设备和存储介质,涉及电子设备领域,能够更方便更可靠的完成对环境光传感器的校准。该方法包括:电子设备响应于检测操作,启动目标应用;目标应用通过反射机制获取电子设备使用的目标传感器服务;目标应用调用目标传感器服务从电子设备的环境光传感器驱动获取至少一个校准参数;目标应用根据每个校准参数控制电子设备的显示屏进行显示,并在每次根据校准参数控制显示屏进行显示后,调用目标传感器服务指示环境光传感器驱动获取校准参数对应的检测值,并在获取到所有校准参数对应的检测值后根据所有检测值确定校准结果。
Description
技术领域
本申请涉及电子设备领域,尤其涉及一种环境光传感器校准方法、电子设备和存储介质。
背景技术
随着电子设备的发展,电子设备的显示屏的占比越来越高。为追求极致的屏占比,电子设备大都采用屏下环境光方案,即将环境光传感器设置在电子设备的显示屏下方。这种屏下环境光方案中,环境光传感器采集到的环境光参数(例如环境光的光强)会受到显示屏自身光源的影响,所以电子设备在出厂前会对电子设备的环境光传感器进行校准,以屏蔽屏幕自身发光对环境光传感器的影响。后续,电子设备在维修阶段,如果涉及到更换屏幕或者主板等影响环境光传感器采集环境光的光参数的维修措施时,则需要重新对环境光传感器进行校准。
发明内容
本申请实施例提供一种环境光传感器校准方法、电子设备和存储介质,能够更方便更可靠的完成对环境光传感器的校准。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供了一种环境光传感器校准方法,应用于电子设备,该电子设备包括目标应用。该方法可以包括:电子设备响应于检测操作,启动目标应用;目标应用通过反射机制获取电子设备使用的目标传感器服务;目标应用调用目标传感器服务从电子设备的环境光传感器驱动获取至少一个校准参数;目标应用根据每个校准参数控制电子设备的显示屏进行显示,并在每次根据校准参数控制显示屏进行显示后,调用目标传感器服务指示环境光传感器驱动获取校准参数对应的检测值,并在获取到所有校准参数对应的检测值后根据所有检测值确定校准结果。
基于上述技术方案,电子设备的目标应用可以通过反射机制去获取电子设备使用的传感器服务,进而可以顺利调用该电子设备使用的传感器服务。这样,对于任何类型的电子设备,都可以顺利调用到传感器服务。在获取到电子设备的传感器服务之后,目标应用则可以通过该传感器服务中提供的方法或函数调用预先存储在环境光传感器驱动中的对应该电子设备中的校准参数。由于该校准参数我们是先定义好的(例如可以是产线上对环境光传感器校准是使用的校准参数),最终只需要根据校准参数在显示屏中进行色块的显示即可。每根据一个校准参数显示一次色块均会通过环境光传感器检测,得到一个检测值。在根据所有校准参数显示完成并得到相应的检测值后,环境光传感器驱动便可以根据这些检测值确定显示屏发光对环境光传感器检测值的噪声,即校准结果。进而在后续电子设备的使用中根据环境光传感器的检测值,结合该噪声确定真实环境光的光参数。相比于现有技术,本申请中电子设备的环境传感器校准方案,可以仅依赖电子设备本身所具备的功能。针对使用不同传感器服务的电子设备均可方便使用,既不需要开发针对特定电子设备的特定校准软件,也不会因为重走生产流程导致用户数据丢失,可靠性更好,也更加方便,用户体验更好。
在第一方面的一种可能的设计方式中,目标应用通过反射机制获取电子设备使用的目标传感器服务,包括:目标应用通过反射机制获取Binder类;目标应用通过Binder类中的服务获取方法获取目标传感器服务。
这样一来,目标应用可以顺利获得目标传感器服务,进而可以进行后续的环境传感器的校准流程。
在第一方面的一种可能的设计方式中,目标应用通过Binder类中的服务获取方法获取目标传感器服务,包括:目标应用通过服务获取方法获取到第二传感器服务的情况下,将第二传感器服务确定为目标传感器服务;目标应用通过服务获取方法未获取到第二传感器服务的情况下,通过服务获取方法获取到第一传感器服务,则将第一传感器服务确定为目标传感器服务;其中,第一传感器服务的版本低于第二传感器服务的版本。
这样一来,目标应用便可以通过有限次的尝试,顺利获取到电子设备本身使用的合法的传感器服务作为目标传感器服务。进而可以利用目标传感器服务进行后续的环境传感器的校准流程。
在第一方面的一种可能的设计方式中,服务获取方法包括getService。
在第一方面的一种可能的设计方式中,目标应用调用目标传感器服务从电子设备的环境光传感器驱动获取至少一个校准参数,包括:目标应用调用目标传感器服务向环境光传感器驱动发送启动指令;启动指令用于指示环境光传感器启动处于休眠状态的目标方法;环境光传感器驱动接收启动指令,启动目标方法并调用目标传感器服务向目标应用返回启动响应;启动响应用于指示目标方法已启动,且可被调用;目标应用接收启动响应;目标应用调用目标传感器服务向目标方法发送校准参数获取指令;校准参数获取指令用于指示目标方法返回预存的至少一个校准参数;目标方法响应于校准参数获取指令,通过目标传感器服务向目标应用返回至少一个校准参数。
基于上述技术方案,目标应用可以通过目标传感器服务顺利的开启环境光传感器驱动中目标方法,而该目标方法则可以配合目标应用完成后续的环境光传感器的校准流程。
在第一方面的一种可能的设计方式中,目标应用调用目标传感器服务向环境光传感器驱动发送启动指令,包括:目标应用调用目标传感器服务对启动指令进行校验;在对启动指令校验成功的情况下,目标应用调用目标传感器服务向环境光传感器驱动发送启动指令。
基于上述技术方案,目标应用可以调用目标传感器服务对启动指令进行校验,已确定其正确性和合法性。这样一来,可以使得目标方法可以接收到符合要求的启动指令,保证了驱动层的安全。
在第一方面的一种可能的设计方式中,目标应用根据每个校准参数控制电子设备的显示屏进行显示,并在每次根据校准参数控制显示屏进行显示后,调用目标传感器服务指示环境光传感器驱动获取校准参数对应的检测值,并在获取到所有校准参数对应的检测值后根据所有检测值确定校准结果,包括:目标应用依据预设规则从至少一个校准参数中选择目标校准参数,并根据目标校准参数控制显示屏进行显示;目标应用调用目标传感器服务向目标方法传递检测指令;检测指令用于指示环境光传感器驱动控制环境光传感器进行环境光检测得到目标校准参数对应的检测值;目标方法响应于检测指令,控制环境光传感器对环境光进行检测得到目标校准参数对应的检测值;目标方法在确定未获取到至少一个校准参数中每个校准参数对应的检测值的情况下,通过目标传感器服务向目标应用返回第一检测响应;第一检测响应用于指示环境光检测成功;目标应用接收第一检测响应,并重新依据预设规则从至少一个校准参数中选择新的目标校准参数,并根据新的目标校准参数控制显示屏进行显示;目标方法在确定获取到了至少一个校准参数中每个校准参数对应的检测值的情况下,目标方法根据所有校准参数对应的检测值确定校准结果,并通过目标传感器服务向目标应用返回结束响应;结束响应用于指示校准结束。
基于上述技术方案,目标应用可以根据预先存储的至少一个校准参数中的每个校准参数控制电子设备的显示屏进行显示。之后通过目标传感器和环境光传感器驱动中目标方法得到相应的检测结果,最终目标方法则可以根据所有的检测结果得到校准结果。其中,因为至少一个校准参数可以是电子设备在产线上进行环境光校准使用的参数,所以根据该校准参数可以顺利的检测出会对环境光传感器的检测产生干扰的部分显示屏发光的参数,进而后续电子设备正产使用时便可以根据该校准结果对环境光传感器的检测结果进行校准得到真实环境光的光参数。
在第一方面的一种可能的设计方式中,方法还包括:目标方法响应于检测指令,控制环境光传感器对环境光检测失败的情况下,通过目标传感器服务向目标应用返回第二检测响应;第二检测响应用于指示环境光检测失败。
基于上述技术方案,目标方法可以在无法得到准确的检测值的情况下,将无法检测的信息告知目标应用,以使得目标应用可以及时的对环境光传感器的校准流程进行调整。
第二方面,本申请提供一种电子设备,该电子设备包括显示屏、存储器和一个或多个处理器;显示屏、存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如第一方面及其任一种可能的设计方式提供的环境光传感器校准方法。
第三方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式提供的环境光传感器校准方法。
第四方面,本申请提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式提供的环境光传感器校准方法。
可以理解地,上述提供的第二方面至第四方面提供的技术方案所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备中环境光传感器的设置示意图;
图2为本申请实施例提供的一种环境光传感器采集环境光的示意图;
图3为本申请实施例提供的一种交转环境光传感器时校准的目标区域示意图;
图4为本申请实施例提供的一种电子设备的硬件结构示意图;
图5为本申请实施例提供的一种电子设备的软件架构示意图;
图6为本申请实施例提供的另一种电子设备的软件架构示意图;
图7为本申请实施例提供的一种环境光传感器校准方法的流程示意图一;
图8为本申请实施例提供的一种环境光传感器校准方法的流程示意图二;
图9为本申请实施例提供的一种环境光传感器校准方法的流程示意图三;
图10为本申请实施例提供的一种环境光传感器校准方法的流程示意图四;
图11为本申请实施例提供的一种校准成功时的显示场景示意图;
图12为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请以下实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
首先,对本申请实施例中涉及名词进行如下说明:
HIDL(HAL(hardware abstraction layer,硬件抽象层) interface definitionlanguage,硬件抽象层接口定义语言):HIDL 是用于指定 HAL 与其用户之间接口的一个接口描述语言(interface description language),它允许将指定的类型与函数调用收集到接口(interface)和包(package)中。
主板:又叫主机板(main board)、系统板(system board)、或母板(motherboard),是计算机最基本的同时也是最重要的部件之一。主板一般为矩形电路板,上面安装了组成计算机的主要电路系统,一般有BIOS(basic input output system,基本输入输出系统)芯片、I/O(input/output,输入/输出)控制芯片、键盘和面板控制开关接口、指示灯插接件、扩充插槽、主板及插卡的直流电源供电接插件等元件。
烧片版本:生产线上使用的版本。
反射(反射机制):反射是一种计算机处理方式。指有程序可以访问、检测和修改它本身状态或行为的这种能力。反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为java语言的反射机制。
实例化:指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。在调用某个服务时,需要先将该服务实例化,即创建该服务的实例后,才可以对该服务进行调用或使用。
ISensor Service:传感器Sensor服务,发挥承上启下的作用,通过HIDL接口对上层应用提供方法,使之可以跟底层的本地native代码进行通信,将上层的java代码和底层驱动的结果返回在这里进行相互转化。
类:类是对某种对象的定义,具有行为(behavior),它描述一个对象能够做什么以及做的方法(method),它们是可以对这个对象进行操作的程序和过程。它包含有关对象行为方式的信息,包括它的名称、属性、方法和事件。
Binder:Binder是进程间通信的一种方式。
入参(input parameters,入口参数)和出参(output parameters,出口参数):入口参数是程序(例如API)执行时会调用的参数,出口参数是程序执行(例如API)完会返回的参数。入参的值是被调函数需要, 出参的值是主调函数需要的。
目前,为追求极致的屏占比,电子设备大都采用屏下环境光方案,即将环境光传感器设置在电子设备的显示屏下方。示例性的,参照图1所示,以电子设备为手机为例,手机的环境光传感器可以设置在显示屏的下方。此时,则无需在对显示屏中的显示模组进行挖槽以放置环境光传感器,环境光传感器的正上方的部分显示屏也可以显示图像。其中,环境光传感器可以设置在手机的上半部分,例如状态栏区域。
对于采用屏下环境光方案的电子设备而言,在电子设备的显示屏显示发光的情况下,环境光传感器在检测环境光时,还会检测到显示屏发出的光。示例性的,以电子设备为手机为例,参照图2中所示,显示屏在显示图像时,用户从显示屏上方可以看到图像。同时,位于显示屏下方的环境光传感器也能采集到显示屏显示图像时发出的光。这种情况下,环境光传感器实际采集的环境光包括显示屏发出的光和外界真实的环境光。即显示屏发出的光相当于环境光传感器实际采集的环境光中的噪声。
基于此,对于采用屏下环境光方案的电子设备而言,为了使得环境光传感器检测的环境光的光参数(例如光强)是外界真实的环境光的光参数,则需要对电子设备的环境光传感器进行校准,以屏蔽屏幕自身发光对环境光传感器的影响。也就是,对于采用屏下环境光方案的电子设备而言,需要对电子设备中的环境光传感器进行校准,以确定显示屏发出的光对应噪声,进而屏蔽该噪声对环境光传感器检测环境光的光参数时的影响。从而使得电子设备正常使用时,环境光可以准确检测到外界真实的环境光的光参数。
所以,对于采用屏下环境光方案的电子设备而言,其在出厂时便会利用特定的校准设备对环境光传感器进行校准。后续,电子设备在维修阶段,如果涉及到更换屏幕或者主板等影响环境光传感器采集环境光的光参数的维修措施时,则需要重新对环境光传感器进行校准。
目前,电子设备在维修是可以使用产线校准方案和特定校准软件方案两种方式。其中,其中,产线校准方案需要在电子设备的烧片版本(产线上使用的版本)重走生产流程,会导致电子设备中的用户数据丢失。
特定软件校准方案则需要开发可以针对所有类型电子设备的校准软件与手机本身的内置检测应用相配合。而且由于能够直接对接环境传感器驱动的传感器服务存在多个版本,不同版本的传感器服务具体代码不同,所以校准软件还需要开发针对不同版本的传感器服务的内容。所以特定软件校准方案的开发难度大且开发成的校准软件体量也会很大,不方便使用。可见,现有的环境光传感器的校准方案可靠性不高也不够方便。
具体的,参照图2所示,实际中环境光传感器在显示屏上的投影面积相比于显示屏本身的面积要小的多。因此,并不是整个显示屏发出的光均会对环境光传感器采集的环境光造成干扰。而是显示屏中环境光传感器周围一定范围的上方的显示区域发出的光才会对环境光传感器采集的环境光造成干扰。所以,实际中对环境光传感器进行校准时,参照图3所示,考虑的区域具体可以为显示屏中环境光传感器周围一定范围的上方的目标区域。示例性的,实际应用中,可以将目标区域确定为以环境光传感器的中心点在显示屏上的投影为中心点,固定长和宽的区域。该固定的长和宽可以则可以根据显示屏的材质和环境光传感器的性能而定。例如,可以由产线人员通过产线测试装备校准测量确定少量电子设备的目标区域的长和宽后,然后,在后续的同类电子设备产品中固定目标区域为:以环境光传感器在显示屏上的投影为中心点、大于或等于产线人员通过产线测试装备校准测量的长和宽对应的区域。作为示例,产线人员通过产线测试装备测量确定显示屏中的目标区域为长和宽均为80(单位为像素)时,则同类的电子设备出厂前的环境光传感器校准时,可以直接设置目标区域的长和宽均为90,或者均为100等。
在实际应用中,在显示屏的目标区域中的每个像素点显示的内容相同的情况下,目标区域中距离环境光传感器的中心点较远的子区域发出的光对环境光传感器检测真实环境光的干扰要小于目标区域中距离环境光传感器的中心点较近的子区域对环境光传感器检测真实环境光的干扰。因此,需要将目标区域划分为多个子区域,然后控制每个子区域进行发光并使用环境光传感器进行环境光的光参数的检测。进而确定每个子区域发光对环境光传感器检测真实环境光的干扰。具体的,实际中可以根据不同型号的电子设备的部件参数(例如显示屏的类型,显示屏的厚度,环境光传感器的)提前确定好对应的校准参数,然后在确定好的校准方案(例如产线校准方案或特定校准软件方案或本申请提供的环境光传感器校准方案)中利用该校准参数进行环境光传感器的校准。其中,校准参数具体可以包括电子设备在校准时需要在目标区域中的子区域显示色块的具体参数,例如色块位置、色块大小、色块颜色、色块亮度等。其中,以色块位置可以是色块的中心位置在屏幕坐标系中的坐标,也可以色块对应的至少一个子区域的编号。子区域的编号则可以是将目标区域划分为多个子区域后按照一定规则进行编号后得到。色块亮度则可以为显示屏可以发出的最大亮度的百分比,例如色块亮度为100则表明该色块以显示屏可显示的最高亮度显示。
示例性的,多个校准参数可以以一个表格的形式存在,例如下表1所示。
表1
另外,因为在对环境光传感器进行校准时,确定显示屏发出的光对环境光传感器检测环境光的影响。所以在对环境光传感器进行校准时,应当使得目标区域处于暗环境,例如用特定大小的遮挡物覆盖在显示屏的目标区域上。或者还可以是其他任意可行的方式。本申请对此不做具体限制。
针对现有电子设备在维修时期使用的环境光校准方案存在的问题,本申请实施例提供一种环境光传感器校准方法。在该方案中,可以通过反射机制去获取电子设备使用的传感器服务,进而可以顺利调用该电子设备使用的传感器服务。这样,对于任何类型的电子设备,都可以顺利调用到传感器服务。在获取到电子设备的传感器服务之后,可以通过该传感器服务中提供的方法或函数调用预先存储在环境光传感器驱动中的对应该电子设备中的校准参数。由于该校准参数我们是先定义好的(例如可以是产线上对环境光传感器校准是使用的校准参数),最终只需要根据校准参数在显示屏中进行色块的显示即可。每根据一个校准参数显示一次色块均会通过环境光传感器检测,得到一个检测值。在根据所有校准参数显示完成并得到相应的检测值后,环境光传感器驱动便可以根据这些检测值确定显示屏发光对环境光传感器检测值的噪声,即校准结果。进而在后续电子设备的使用中根据环境光传感器的检测值,结合该噪声确定真实环境光的光参数。也就是或,本申请中提供的环境传感器校准方案,可以仅依赖电子设备本身所具备的功能。针对使用不同传感器服务的手机均可方便使用,既不需要开发针对特定手机的特定校准软件,也不会因为重走生产流程导致用户数据丢失,可靠性更好,也更加方便,用户体验更好。
下面对本申请实施例提供的环境光传感器校准方法进行描述。
本申请实施例提供的环境光校准方法可以应用于电子设备中。在一些实施例中,该电子设备可以是手机、平板电脑、手持计算机、个人计算机(personal computer,PC),超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence, AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备等具备有通话功能的电子设备,本申请实施例对该电子设备的具体类型不作特殊限制。
示例性的,以电子设备为手机为例,图4示出了本申请实施例提供的一种电子设备的结构示意图。
如图4所示,该电子设备可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中,传感器模块280可以包括压力传感器280A,陀螺仪传感器280B,气压传感器280C,磁传感器280D,加速度传感器280E,距离传感器280F,接近传感器280G,指纹传感器280H,温度传感器280J,触摸传感器280K,环境光传感器280L,骨传导传感器280M等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
外部存储器接口220可以用于连接外部的非易失性存储器,实现扩展电子设备的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
内部存储器221可以包括一个或多个随机存取存储器(random access memory,RAM )和一个或多个非易失性存储器(non-volatile memory, NVM)。随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。在本申请实施例中,内部存储器221可以存储有电子设备在单镜拍摄或多镜拍摄等模式下拍摄的图片文件或录制的视频文件等。
触摸传感器280K,也称“触控器件”。触摸传感器280K可以设置于显示屏194,由触摸传感器280K与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280K也可以设置于电子设备的表面,与显示屏294所处的位置不同。
接近传感器280G,是以无需接触检测对象进行检测为目的的传感器的总称。接近传感器能检测对象的移动信息和存在信息转换为电气信号,其主要用于检测物体的位移。
环境光传感器280L用于感知环境光亮度。例如:环境光传感器280L可以测量环境光的四个通道(红red、绿green、蓝bule、透明clear,)的光强度。环境光传感器280L将测量到的环境光的四个通道的光强度输出给处理器210。处理器210可以对环境光传感器280L输出的环境光的四个通道的光强度进行处理(如,对环境光的四个通道的光强度积分)得到环境光的光强度(如照度值,或者,照度值和色温值)。在亮屏状态(包括解锁后的亮屏和锁屏下的亮屏)下,电子设备可以根据得到的环境光的光强度自适应调节显示屏亮度。如,在环境光照较暗时,降低屏幕亮度防止刺眼;在环境光照较明亮时,提高屏幕亮度,可以使屏幕显示更清楚。环境光传感器280L也可用于实现拍摄功能时自动调节白平衡。其中,在电子设备处于亮屏状态,或实现拍摄功能时,处理器210控制环境光传感器280L打开。在熄屏时,处理器210控制环境光传感器280L关闭。环境光传感器280L还可以用于电子设备处于通话状态时是否熄屏的判断,例如环境光传感器280L在确定环境光的光轻度低于一定阈值时,电子设备可以认为自身处于封闭空间,进而进行熄屏。在本申请实施例中,电子设备中环境光传感器可以如图1所示,设置在显示屏294的下方,即电子设备采用屏下环境光方案。
在一些实施例中,电子设备可以包括1个或N个摄像头293,N为大于1的正整数。在本申请实施例中,摄像头293的类型可以根据硬件配置以及物理位置进行区分。例如,摄像头293所包含的多个摄像头可以分别置于电子设备的正反两面,设置在电子设备的显示屏294那一面的摄像头可以称为前置摄像头,设置在电子设备的后盖那一面的摄像头可以称为后置摄像头;又例如,摄像头293所包含的多个摄像头的焦距、视角不同,焦距短、视越大的摄像头可以称为广角摄像头,焦距长、视角小的摄像头可以称为普通摄像头。不同摄像头采集到的图像的内容的不同之处在于:前置摄像头用于采集电子设备正面面对的景物,而后置摄像头用于采集电子设备背面面对的景物;广角摄像头在较短的拍摄距离范围内,能拍摄到较大面积的景物,在相同的拍摄距离处所拍摄的景物,比使用普通镜头所拍摄的景物在画面中的影像小。其中,焦距的长短、视角的大小为相对概念,并无具体的参数限定,因此广角摄像头和普通摄像头也是一个相对概念,具体可以根据焦距、视角等物理参数进行区分。
电子设备通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像编辑的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏294,N为大于1的正整数。
本申请实施例中,显示屏294可用于发光显示电子设备的界面,例如前台应用的界面。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器521,显示屏294,摄像头293,和无线通信模块260等供电。
图像采集设备的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。图像采集设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块250可以提供应用在图像采集设备上的包括2G/3G/4G/5G等无线通信的解决方案。
无线通信模块260可以提供应用在图像采集设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bl图像采集设备tooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(freq图像采集设备ncy modulation,FM),近距离无线通信技术(near fieldcommunication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和电子设备的接触和分离。电子设备可以支持一个或多个SIM卡接口。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口295可以同时插入多张卡。SIM卡接口295也可以兼容外部存储卡。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。
当然,可以理解的,上述图4所示仅仅为电子设备的形态为手机时的示例性说明。若电子设备是平板电脑,手持计算机,PC,PDA,可穿戴式设备(如:智能手表、智能手环)等其他设备形态时,电子设备的结构中可以包括比图4中所示更少的结构,也可以包括比图4中所示更多的结构,在此不作限制。
可以理解的是,一般而言,电子设备功能的实现互利需要硬件的支持外,还需要软件的配合。电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图5为本申请实施例提供的电子设备的软件系统的分层架构示意图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。
如图5所示,以电子设备使用的系统为Android系统为例,在本申请实施例中,将电子设备的软件分为四层,从上至下分别为应用程序层,框架层,系统库和安卓运行时(android runtime),HAL层(hardware abstraction layer,硬件抽象层)以及驱动层(或称为内核层)。
其中,应用程序层可以包括一系列的应用程序。如图5所示,应用程序层可以包括相机、图库、日历、地图、导航、WLAN、蓝牙、音乐、视频、短信息、通话等应用程序。
其中,应用程序层还可以包括检测应用。在本申请实施例中,检测应用为电子设备在被用户正常使用时无法看到和使用的应用,需要特定的操作才可以被使用。具体的,检测应用可以是该电子设备需要被维修时,电子设备响应于维修人员的特定操作后启用。检测应用在被启动后可以通过调用电子设备中软件架构中的其他层中的模块,以完成电子设备的环境光传感器的校准。
示例性的,参照图6所示,检测应用可以在被维修人员启动时,会开始进行环境光传感器的校准。检测应用可以首先从HAL层中获取电子设备当前使用的传感器服务。示例性的,以电子设备的厂商规定电子设备可使用的传感器服务包括1.1版本的第一传感器服务和2.0版本的第二传感器服务为例。因为当前电子设备使用的传感器服务的版本不确定,所以检测应用可以按照可能的版本依次确定电子设备当前使用的传感器服务的版本,在确定好版本后便可以利用相应的传感器服务进行后续环境光传感器的校准流程。
具体的,检测应用可以先尝试从HAL层(图2中以“传感器服务”指代HAL层中传感器服务或者可以获取传感器服务的模块)中获取2.0版本的第二传感器服务,如果获取到,则进行后续流程。如果未获取到,则继续尝试获取1.1版本的第一传感器服务,若获取到了第一传感器服务则继续后续流程。如果未获取到第一传感器服务(HAL层会向检测应用返回失败响应),则表明该电子设备中的传感器服务可能是不合标准或者非法的版本,检测应用也无法正常使用该电子设备的传感器服务,此时检测应用则可以不再进行环境光传感器的校准。
进一步的,检测应用还可以控制电子设备显示提示信息,用以提示维修人员该电子设备的传感器服务非法。例如可以显示“传感器服务非法,无法继续进行环境光传感器校准”。
在检测应用获取到可用的传感器服务后,检测应用可以通过HIDL接口条调用传感器服务启动生产进程。
具体的,启动生产进程可以是指检测应用请求底层(即驱动层)的环境光传感器驱动启动目标方法,例如handleSensorPara方法。在接收来自底层驱动的响应后,则可以确定生产进程启动成功。之后,检测应用可以通过传感器服务向目标方法发送请求所有校准参数的指令,以使得目标方法向检测应用返回提前预存的所有校准参数。其中,校准参数可以包括:主副命令、色块位置、色块大小、色块颜色、色块亮度和延时时间T。示例性的,所有校准参数可以以表格的形式存在,如下表2所示。
表2
其中,主副命令可以是对所有校准参数进行编号(例如上述表1中的色块编号)后由编号转化得出。例如表2中所示,主副命令可以为两位的数值,第一位为主命令,第二位为副命令。主副命令可以包括主命令和副命令,为了方便管理,在配置主副命令时,可以将子参数相同的校准参数配置为相同的主命令,副命令则配置为不同的数值以区分不同的校准参数。例如,参照上表2所示,可以将色块亮度相同的校准参数中的主命令设置的相同。
延时时间T存在的意义在于,在电子设备显示校准参数指示的色块后,显示屏需要经过一端时间后,发出的光才会稳定,此时环境光传感器进行检测得到的值才是准确的,所以校准参数里会包括有延时时间T。这样一来,后续检测应用在根据校准参数指示显示驱动显示了相应色块后,才可以指示环境光传感器检测到准确的显示屏发光的参数(例如光强)。
在检测应用获取到所有校准参数后,检测应用便可以根据该校准参数指示显示驱动进行显示。在每显示一个校准参数对应的色块后,检测应用可以指示环境光传感器驱动检测显示发光的参数。
框架层可以为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。框架层包括一些预先定义的函数。例如可以包括活动管理器、窗口管理器,视图系统,资源管理器,通知管理器,音频服务,相机服务等,本申请实施例对此不做任何限制。
系统库可以包括多个功能模块。例如:表面管理器(surface manager) ,媒体库(Media Libraries),OpenGL ES,SGL等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。OpenGL ES用于实现三维图形绘图,图像渲染,合成,和图层处理等。SGL是2D绘图的绘图引擎。
安卓运行时(android runtime)包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
HAL层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。 从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。HAL层提供标准界面,向更高级别的 Java API 框架(即框架层)显示设备硬件功能。HAL 层包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如:audio HAL音频模块,bluetooth HAL蓝牙模块,camera HAL相机模块,sensors HAL传感器模块(或称为Isensor service,传感器服务)。
在本申请实施例中,硬件抽象层的传感器服务主要用于发挥承上启下的作用,可以通过HAL层的HIDL接口对检测应用提供自身的方法(或称为函数或API),是上层应用可以和底层驱动(也可以称为native代码)进行通信。参照图6所示,该传感器服务还可以将上层的检测应用和底层驱动的结果返回在这里进行相互转化,以供接收方使用。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等,本申请不做限定。其中,传感器驱动具体可以包括电子设备包含的每个传感器的驱动,例如环境光传感器驱动,接近传感器驱动等。
示例性的,参照图6所示,在本申请实施例中,环境光传感器驱动可以在接收到来自检测应用通过传感器服务发送的启动目标方法(handleSensorPara方法)的指令后,可以启动目标方法。在本申请实施例中,目标方法被启动后,目标方法则可以被调用。之后,环境光传感器中在接收到来自检测应用的请求校准参数的指令(或请求后),便可以通过目标方法通过传感器服务将校准参数返回给检测应用。再之后,环境光传感器驱动在接收到来自检测应用的检测命令(具体是目标方法接收该检测命令)后,控制环境光传感器检测环境光的光参数。此时,环境光具体为显示屏发出的光。另外,为了使得环境光传感器驱动可以知晓当前检测的环境光是那些显示屏在什么显示情况(即校准参数指示的显示情况)下发出的光,检测命令中可以包括主副命令。这样一来,环境光传感器驱动便可以知晓每次接收到检测命令检测环境光的光参数后,对应的显示情况。在环境光传感器驱动确定(具体是目标方法进行确定)已经检测完所有校准参数指示的显示情况的环境光的光参数后,便可以根据所有检测到的参数确定校准结果。此时,便代表整个环境光传感器校准流程结束。当然,检测应用在向环境光传感器驱动发送了对应所有校准参数对应的检测命令且均接收到指示检测完成或检测成功的检测响应后,则会确定校准完成。后续,电子设备的环境光传感器驱动在驱动环境光传感器时,便可以调用该校准结果对环境光传感器检测的环境光的光参数进行去噪,以得到真实环境光的光参数。
本申请实施例中提供的技术方案均可以在具有上述硬件结构和/或软件架构的电子设备中实现。
基于上述图5和图6所示的软件架构,以下结合图7,对本申请实施例提供的环境光传感器校准方法进行详细说明。图7为本申请实施例提供的一种环境光传感器校准方法的流程示意图。参照图7所示,以电子设备为手机为例,该环境光传感器校准方法可以包括S701-S712:
S701、手机响应于检测操作,启动检测应用。
在手机的屏幕或者主板维修后,需要对维修结果进行完工检测,即确定维修是否成功。这种情况下,维修人员会通过特定的检测操作,启动手机出厂预置的检测应用,以进行手机所有功能的检测,以保证维修成功。其中,检测应用即为本申请中的目标应用。
示例性的,检测操作可以是维修人员通过在手机的设置菜单中实施的特定操作,例如对开发者选项连续点击多次。或者,检测操作还可以是维修人员打开手机的某个特定选项后输入仅维修人员知晓的密码。当然,实际中检测操作还可以是其他任意可行的操作。
在本申请实施例中,检测应用在启动后,在确定当前所处的手机的环境光传感器的设置方案为屏下环境光方案的情况下,将会进行环境光传感器校准流程。即执行后续的S702-S712。
另外,需要说明的是,环境光校准是主要是需要环境光传感器去检测显示屏发光的光参数,即环境光传感器检测环境光的光参数的噪声值,作为后续校准结果的依据的。所以,在维修人员实施检测操作时,会使用特定手段将显示屏中会对环境光传感器的检测产生干扰的目标区域置于暗光环境中。例如可以使用固定大小的橡胶块贴合在目标区域上。
S702、手机的检测应用获取手机使用的目标传感器服务。
在本申请实施例中,环境光传感器的校准需要检测应用对驱动层中的环境光传感器驱动进行调用控制,而环境光传感器驱动在现有的软件设计方案中是不能直接被应用层的应用调用的,所以这里检测应用需要通过传感器服务(即手机使用的目标传感器服务)来对环境光传感器进行调用和控制。
在实际中,目前手机可以使用的传感器服务是存在多个版本的,所以检测应用在开发时,为了适用在所有手机中,检测应用是可以调用所有版本的传感器服务的。
对于某个手机上安装的检测应用而言,其在未被启动使用时,检测应用是不知道将要调用或者使用什么版本的传感器服务。基于此,检测应用在被启动后,首先需要获取手机使用的目标传感器服务(即某个版本的传感器服务)。
具体的,在本申请实施例中,获取手机使用的传感器服务也包括对传感器服务版本的确定。
示例性的,以当前传感器服务的版本包括1.1版本的传感器服务和2.0版本的传感器服务为例,结合图7,参照图8所示,S702具体可以包括S7021-S7025:
S7021、手机的检测应用获取Binder类。
在本申请实施例中,检测应用在获取传感器服务时,可以认为是检测应用的进程需要与系统进程进行通信,所以此时检测应用需要通过Binder这一种进程间通信机制来获取传感器服务。在这之前,则首先需要获取Binder。
实际中,Binder可以认为是HAL层提供给框架层的一种通信机制,所以这里检测应用具体可以是从HAL层中获取Binder类。以手机采用安卓系统为例,这里的Binder类具体可以为android.os.HwBinder binder类。
另外,实际中应用层的应用应当是从框架层获取信息的,但是对于Binder类而言,框架层是没有想应用提供相关的接口的。所以,在本申请实施例中,手机的检测应用可以使用反射机制从HAL层中获取Binder类。
在一种可实现的方式中,手机的检测应用在获取传感器服务时,可以先尝试获取更新版本(或者更高版本)的传感器服务,获取不到的情况下再逐次尝试获取更低版本的传感器服务,直至获取到可用的传感器服务。基于此,S7021后执行S7022-S7025。
S7022、手机的检测应用利用Binder类中包括的服务获取方法获取第二传感器服务。
示例性的,以手机采用安卓系统为例,这里Binder类包括的服务获取方法具体可以为getService方法。检测应用具体可以用反射机制获取Binder类中的服务获取方法(例如getService方法)。
其中,第二传感器服务即为2.0版本的传感器服务。这里的获取第二传感器服务不代表一定能获取到第二传感器服务,仅指一种尝试获取第二传感器服务的状态,后续获取第一传感器服务同理。
在实际中,服务获取方法在获取第二传感器服务时,需要以第二传感器的全名来查找获取。示例性的,以手机采用安卓系统为例,第二传感器的全名可以为:vender.honor.hardware.sensor@2.0::ISensor。
S7023、手机的检测应用在获取到第二传感器服务的情况下,将第二传感器服务确定为目标传感器服务。
当然,实际中,手机的检测应用获取到哪个传感器服务,便使用哪个传感器服务,不存在将获取到的某个版本的传感器服务确定为目标传感器服务的步骤。
S7024、手机的检测应用在未获取到第二传感器服务的情况下,利用Binder类中包括的服务获取方法获取第一传感器服务。
其中,第一传感器服务即为1.1版本的传感器服务。
在实际中,服务获取方法在获取第二传感器服务时,需要以第二传感器的全名来查找获取。示例性的,以手机采用安卓系统为例,第二传感器的全名可以为:vender.honor.hardware.sensor@1.1::ISensor。
S7025、手机的检测应用在获取到第一传感器服务的情况下,将第一传感器服务确定为目标传感器服务。
若手机的检测应用未获取到第二传感器服务也未获取到第一传感器服务,则检测应用可以认为无法进行环境光传感器的校准。这种情况下,检测应用可以结束环境光传感器校准流程。进一步的,检测应用还可以控制手机的显示屏显示提示维修人员异常的告警信息。例如,该告警信息可以为:传感器服务异常,结束校准。
当然,上述S7022-S7025中公开的检测应用先尝试获取高版本的第二传感器服务,失败后再获取低版本的第一传感器服务仅为一种可能的实现方式,实际中也可以先尝试获取低版本的第一传感器服务,再获取高版本的第二传感器服务。若存在更多版本的传感器服务则获取方式同理。
在本申请实施例中,检测获取目标传感器服务的目的是为了后续可以通过传感器服务对驱动层中的环境光传感器驱动进行调用或控制。而一个服务能被调用的前提就是先将其实例化,所以这里检测应用获取目标传感器服务具体是指检测应用在确定好电子设备当前使用的目标传感器服务(也可以理解为确定传感器服务的版本)后,将目标传感器服务进行实例化,建立目标传感器服务的实例。之后,检测应用便可以顺利对HAL层中得到目标传感器服务进行调用。
需要说明的是,检测应用在开发时是针对手机厂商认定的合法版本的传感器服务进行的,所以检测应用在利用服务获取方法获取时,会告知服务获取方法当前需要去获取的传感器服务的全名,例如第一传感器服务的全名和第二传感器服务的全名。这样一来,若手机当前使用的传感器服务不属于手机厂商认定的合法版本,即便该不合法版本的传感器服务具备合法版本的传感器服务的所有功能,检测应用也将无法利用服务获取方法获取到该传感器服务。进而,检测应用也将无法进行后续环境光传感器的校准。
在实际中,环境传感器驱动控制环境光传感器检测环境光的光参数并返回,以及根据环境光传感器针对校准参数对应的显示情况的检测结果确定校准结果的功能,具体可以是通过其中的特定方法(即目标方法)实现的。而该目标方法在不需要对环境光传感器进行校准时是处于休眠状态无法使用的,所以检测应用在获取到目标传感器服务后,需要指示环境光传感器驱动启动目标方法(即执行S703),进而可以开展后续的环境光传感器的校准流程。
S703、手机的检测应用调用目标传感器服务向环境光传感器驱动发送启动指令。
其中,启动指令用于指示环境光传感器驱动启动目标方法。示例性的,启动指令可以携带有操作码(actionCode)、第一入参和第一出参。其中,操作码为预先规定目标方法对应的标识码,以手机采用安卓系统为例,目标方法可以为handlesensorPara,handlesensorPara对应的操作码可以为29。第一入参可以是启动命令,例如0,1。第一出参则是该目标方法是否可以启动的应答,例如第一出参可以规定该目标方法在接收该第一入参后输出的只能是0或者1,0可以代表目标方法已启动可以被调用,1则代表目标方法无法启动不能被调用。启动命令的数据格式和内容可以是提前定义好的,在目标方法接收到该第一入参后便可以尝试进行启动,并在启动成功后返回对应的启动响应,该启动响应的数据格式则由第一出参决定。
在本申请中,启动目标方法可以理解为拉起生产进程,目标方法运行后则可以认为是生产进程。
在本申请中,应用层的检测应用具体可以通过HAL层提供的HIDL接口调用HAL层中的目标传感器服务(或者也可以认为检测应用于目标传感器服务进行通信)。
在一些实施例中,检测应用具体是通过调用目标传感器服务中的某些方法先将启动指令存储在调用缓存中,并对该启动指令的中的信息进行校验后,再传给环境光传感器驱动。基于此,结合图7,参照图9所示,S703的具体实现可以包括S7031-S7033:
S7031、手机的检测应用调用目标传感器服务将启动指令存储在第一存储区中。
示例性的,检测应用可以调用目标传感器服务中的传递方法将启动指令存储在第一存储区中。示例性的,第一存储区可以为手机为目标传感器服务设置的调用缓存。以手机采用安卓系统为例,传递方法可以为transact方法。
在现有的软件设计中,应用层的检测应用无法直接调用HAL层的目标传感器服务,所以这里检测应用具体是利用反射来调用目标传感器服务中的传递方法的。
在实际中,目标传感器服务本身是知晓环境光传感器驱动包括的所有服务对应的操作码,以及可接收的入参和出参格式的。基于此,为了防止驱动层的环境光传感器驱动接收到不符合要求的指令,保证安全。检测应用需要利用目标传感器服务先将需要传递的指令存储在调用缓存中。之后,在利用目标传感器服务校验其正确性或合法性后,则会将该启动指令发送给环境光传感器。
S7032、手机的检测应用调用目标传感器服务对启动指令中进行校验。
一种可实现的方式中,检测应用可以调用目标传感器服务中的校验方法进行校验。示例性的,以手机采用安卓系统为例,该校验方法可以为releaseTemporaryStorage。
该特定校验方法可以首先基于启动指令中的操作码确定目标方法,之后基于目标传感器服务可以便捷获取到的目标方法的出/入参要求,对启动指令中携带的第一入参和第一出参进行校验。例如,若该校验方法确定目标方法的仅有入参要求,且要求入参为两个数据类型为int的值,而启动指令中携带的第一入参中包括的两个值的数据类型分别为int和string,则该校验方法确定该启动指令校验不合格,即校验失败。若启动指令中携带的第一入参包括的值的数据类型均为为int,则该校验方法确定该启动指令校验合格,即校验成功。
在对启动指令校验成功的情况下,该检测应用则可以继续利用目标传感器服务对启动指令进行传递,即执行后续的S7033。在对启动指令校验失败的情况下,该校验方法则可以向检测应用返回校验失败的信息,以指示检测应用重新发送启动指令(即重新执行S7031)或者结束环境光传感器校准流程。
在现有的软件设计中,应用层的检测应用无法直接调用HAL层的目标传感器服务,所以这里检测应用具体是利用反射来调用目标传感器服务中的传递方法的校验方法。
S7033、在对启动指令校验成功的情况下,手机的检测应用调用目标传感器服务将启动指令传递给环境光传感器驱动。
具体的,检测应用可以调用目标传感器服务中的传递方法将启动指令传递给环境光传感器驱动,以使环境光传感器驱动启动目标方法,并返回指示目标方法是否启动的响应信息。另外,实际中检测应用发出的启动指令可能和环境光传感器驱动能够识别的指令格式不符,所以这里目标传感器服务(或者目标传感器的传递方法)在将启动指令传递给环境光传感器驱动时,还会将该启动指令翻译为环境光传感器驱动可以识别的格式。
在一些实施例中,因为目标传感器服务是可以直接确定启动指令中携带的操作码对应的目标方法的。所以,在检测应用调用目标传感器服务对启动指令校验成功的情况下,检测应用可以调用目标传感器将第二指令传递给环境光传感器驱动中的目标方法。其中,第二指令携带的内容相比于启动指令,则可以去除目标方法对应的操作码。
在一些实施例中,在对启动指令校验成功后,第一存储区中存储的启动指令便没有继续存在的意义了。而且第一存储区的存储空间可能是很有限的。所以为了使得第一存储区可以后续被正常使用。在对启动指令校验成功的情况下,检测应用还可以调用目标传感器服务的释放方法释放第一存储区,即删除第一存储区中存储的启动指令。示例性的,以手机采用按照系统为例,释放方法可以为releaseTemporaryStorage。
另外,实际中检测应用发出的启动命令的数据格式可能和环境光传感器驱动(或者环境光传感器驱动的目标方法)可以识别的数据格式不符,所以这里目标传感器服务在将启动命令发送给环境光传感器驱动时,还会将启动命令的数据格式翻译为环境光传感器驱动可以识别的格式。
S704、手机的环境光传感器驱动接收启动指令。
具体的,环境光传感器接收了启动指令后,则可以启动目标方法。之后,为了使得手机的检测应用明确目标方法已启动可以被调用,则会通过目标传感器服务将指示目标方法已启动的启动响应返回给检测应用,即执行S705。示例性的,启动响应可以为0。
其中,启动响应可以是环境光传感器将启动指令中携带的第一入参和第一出参输入目标方法后得到的。当然,将启动指令中携带的第一入参和第一出参输入目标方法也可以是检测应用调用目标传感器服务直接完成的(即前述第二指令对应的情况)。
S705、手机的环境光传感器驱动调用目标传感器服务向检测应用返回启动响应。
具体的,基于目前软件架构的设计标准,大多数情况下不同层的模块之间是不能直接传输数据的。也就是说,环境光传感器驱动据是不可以直接将启动响应返回给检测应用的。所以这里环境光传感器驱动可以先将启动响应返回给目标传感器服务,以使目标传感器服务利用HIDL接口将启动响应返回给检测应用。当然,因为目标传感器服务之前获取到了第一出参,所以如果环境光传感器驱动返回的启动相应不符合第一出参的要求,则目标传感器服务会向环境光传感器驱动发送重新返回启动相应的指示信息,以使环境光传感器驱动中的目标方法重新根据第一入参生成符合第一出参要求的启动响应并返回给目标传感器服务。
一种可实现的方式中,环境光传感器中的目标方法生成目标响应后,可以主动调用目标传感器服务中的回调函数,以将启动响应发送给目标传感器服务。
另外,实际中环境光传感器驱动的目标方法生成的启动响应的数据格式可能和检测应用可以识别的数据格式不符,所以这里目标传感器服务在将启动响应传递给检测应用时,还会将该启动响应翻译(或转换)为检测应用可以识别的格式。当然,在S705实施的过程中,如果目标传感器服务无法直接向检测应用发送启动响应的情况下,目标传感器服务也可以利用诸如反射的方式将启动响应顺利发送给检测应用。
S706、手机的检测应用接收启动响应。
在手机的检测应用接收到启动响应后,检测应用便可以调用目标传感器服务向环境光传感器驱动中的目标方法请求预存的所有校准参数,既执行后续的S707-S710。
S707、手机的检测应用调用目标传感器服务向环境光传感器驱动中的目标方法传递校准参数获取指令。
其中,校准参数获取指令用于指示目标方法返回预存的至少一个校准参数。其中,预存的所有校准参数可以是该手机在生产时产线上进行环境光传感器校准使用的校准参数。在该手机出厂后,其在产线上使用过的所有校准参数可以预存在环境光传感器驱动对应的存储区中。在本申请实施例中,至少一个可以为所有。
示例性的,校准参数获取指令可以携带有第二入参以及第二出参。其中,第二入参可以为获取校准参数的命令,例如0,0。第二出参则可以规定目标方法在接收了该第二入参后,返回的数据的数据格式。示例性的,以校准参数包括如表2中所示的内容为例,第二出参则可以规定目标方法在接收待第一入参后,返回的出参存在五个数据,每个数据的数据格式依次可以为:两位int(对应主副命令),string(对应色块位置),int(对应色块大小),string(对应色块颜色),int(对应延时时间T)。
S707的具体实现可以参照S703的具体实现,此处不再赘述。两者的区别在于,校准参数获取指令和启动命令的内容不同。
S708、手机的环境光传感器中的目标方法接收校准参数获取指令。
在目标方法接收到该校准参数获取指令后,响应于该校准参数获取指令,便会将预先存储在环境光传感器驱动对应的存储区中的至少一个校准参数返回给校准应用,即执行S709。
S709、手机的环境光传感器驱动的目标方法通过目标传感器服务向检测应用返回至少一个校准参数。
具体的,基于目前软件架构的设计标准,大多数情况下不同层的模块之间是不能直接传输数据的。也就是说,环境光传感器驱动中的目标方法是不可以直接将校准参数返回给检测应用的。所以,这里环境光传感器驱动的目标方法可以将至少一个校准参数先返回给目标传感器服务。目标传感器服务再利用HIDL接口将至少一个校准参数返回给检测应用。
一种可实现的方式中,环境光传感器驱动的目标方法得到至少一个校准参数后,可以主动调用目标传感器服务中的回调函数,以将至少一个校准参数发送给目标传感器服务。
另外,实际中环境光传感器驱动的目标方法获取到的至少一个校准参数的数据格式可能和检测应用可以识别的数据格式不符,所以这里目标传感器服务在将至少一个校准参数发送给检测应用时,还会将至少一个校准参数的数据格式翻译为检测应用可以识别的格式。
S710、手机的检测应用接收至少一个校准参数。
在手机的检测应用获取到至少一个校准参数后,便可以根据至少一个校准参数控制手机进行显示,进而指示环境传感器驱动在每次显示后控制环境光传感器进行检测,从而获取环境光传感器的检测值。这里检测值具体为显示屏发光的光参数。之后,环境光传感器驱动在确定所有校准参数均被显示后,则可以根据所有的检测值确定校准结果。即S710后执行S711。
基于S703-S710,手机的检测应用便可以调用目标传感器服务从手机的环境光传感器驱动获取至少一个校准参数,进而可以进行后续的校准流程。
S711、手机的检测应用根据至少一个校准参数中的每个校准参数控制手机的显示屏进行显示,并在每次根据校准参数控制显示屏进行显示后,则调用目标传感器服务指示环境光传感器驱动获取校准参数对应的检测值,并在获取到至少一个校准参数中所有校准参数对应的检测值后根据所有检测值确定校准结果。
检测应用根据某个校准参数控制手机进行显示具体为检测应用指示显示驱动在显示屏中,显示该校准参数对应的色块。具体的,检测应用指示显示驱动的过程可以是现有应用指示显示驱动显示图像的过程,此处对此做具体限制。示例性的,以该校准参数为表2中的第一条校准参数为例,检测应用会指示显示驱动在显示屏的子区域1中显示大小为x,亮度为100,颜色为全红色的色块,并持续50ms。
在一些实施例中,为了使得检测应用每次根据校准参数控制手机显示后,环境光传感器都可以检测到合适的检测值,则检测应用可以每一次控制手机显示后,都向环境光传感器驱动(具体可以为环境光传感器驱动的目标方法)发送传递检测指令,检测指令可以为当前显示屏进行显示使依据的校准参数的主副命令,以指示环境光传感器驱动进行检测并确定是否已获取了所有校准参数对应的检测值。在环境光传感器驱动的目标方法确定已获取了所有校准参数对应的检测值的情况下,则会根据所有检测值确定校准结果。
环境光传感器驱动控制环境光传感器检测完成后则会向检测应用发送检测完成的响应。检测应用在接收到该响应后,则可以根据下一个校准参数控制手机显示并循环上述过程。其中,每次选择哪个校准参数可以是依据预设规则从至少一个校准参数中选择。在环境光传感器驱动确定检测到了每个校准参数对应的检测值后,环境光传感器驱动则会向检测应用发送停止环境光传感器校准流程的指示或命令,从而结束环境光传感器的校准。
基于此,结合图7,参照图10所示,S711具体可以包括S7111-S71110:
S7111、手机的检测应用依据预设规则从至少一个校准参数中选择目标校准参数,并根据目标校准参数控制手机的显示屏进行显示。
第一种可实现的方式中,预设规则可以为从至少一个校准参数中未被选择为目标校准参数的校准参数中,任意选择一个校准参数作为目标校准参数。例如,以至少一个校准参数包括A、B、C、D、E五条校准参数,则S7111首次执行时,可以随机选择一个校准参数作为目标校准参数,例如选择B作为目标校准参数。S7111第二次执行时,则可以从A、C、D、E中随机选择一个作为目标校准参数,例如选择D作为目标校准参数。后续则以此类推,S7111第五次执行时,则选择仅剩的一个校准参数作为目标校准参数。
第二种可实现的方式中,预设规则可以是依据预设顺序从至少一个校准参数选择目标校准参数。即每次执行S7111时选择的目标校准参数是按照预设顺序从至少一个校准参数中选择的,每次选择的目标校准参数既没有被选择过且多次选择的所有目标校准参数选择顺序在至少一个校准参数中符合预设顺序。
示例性的,预设顺序可以是任意可行的顺序。例如若该至少一个校准参数以如表2所示的形式存在,则该预设顺序可以是表格由上至下的顺序。以至少一个校准参数包括10条为例,第一次S7111执行时则目标校准参数为表格中第一行的校准参数,第二次S7111执行时则目标校准参数为表格中第二行的校准参数,依次类推,第十次S7111执行时则目标校准参数为表格中第十行的校准参数。
S7112、手机的检测应用调用目标传感器服务向环境光传感器驱动的目标方法传递检测指令。
其中,检测指令用于指示环境光传感器驱动控制环境光传感器进行环境光检测得到检测值。检测指令包括第三入参和第三出参。其中,第三入参可以为目标校准参数中的主副命令,例如10。第三出参则可以规定目标方法在接收第三入参后返回的数据的数据格式。例如,第三出参可以规定目标方法在接收第三入参后返回的数据为1或0。其中,1可以检测失败,0代表检测成功。
主副命令存在的意义在于,使得环境光传感器驱动知晓当前是对哪个校准参数对应的显示情况进行了检测,进而可以确定是否对所有的校准参数对应的显示情况进行了检测并获取了检测值。
S7112的具体实现可以参照S707的具体实现,此处不再赘述。
S7113、手机的环境光传感器驱动的目标方法接收检测指令,响应于该检测指令,目标方法控制环境光传感器对环境光进行检测。
实际中环境光传感器对环境光进行检测是存在失败可能的。
在环境光传感器检测成功的情况下,目标方法会获取到环境光传感器检测得到的检测值。之后,目标方法会判断当前是否获取到了至少一个校准参数中每个校准参数对应的检测值。若确定没有获取到至少一个校准参数中每个校准参数对应的检测值,则生成指示环境光检测成功的第一检测响应(例如0),并返回给检测应用,即执行S7114。若确定获取到了至少一个校准参数中每个校准参数对应的检测值,则生成指示校准结束的结束响应(例如00),并返回给检测应用;同时,目标方法会根据获取到的所有检测值确定校准结果。即执行S7115和S7116。
其中,目标方法可以根据每次接收到检测指令中携带的主副命令以及当前的环境光传感器的检测情况(检测成功或检测失败),来确定是否获取到至少一个校准参数中每个校准参数对应的检测值。例如,如果目标方法确定已经获取到过至少一个校准中每个校准参数的主副命令,且当前检测成功,则确定获取到了至少一个校准参数中每个校准参数对应的检测值。否则确定未获取到至少一个校准参数中每个校准参数对应的检测值。
在环境光传感器检测失败的情况下,目标方法会未获取到环境光传感器检测得到的检测值,并生成指示环境光检测失败的第二检测响应(例如1),并返回给检测应用,即执行S7117。
在一些实施例中,可能会由于维修人员的操作不当,导致环境光传感器检测的检测值明显存在错误,此时目标方法也会确定环境光传感器检测失败,并生成指示检测失败的第二检测响应,并返回给检测应用,即执行S7117。示例性的,以维修人员未能将制造暗光环境的橡胶块贴合在手机显示屏的合适区域为例,在环境光进行检测时,可能会使得检测值中存在外界环境光的影响,而不仅仅检测了显示屏发光的光参数。此时目标方法则会确定检测值不合格,进一步确定环境传感器检测失败。
具体的,目标方法可以基于前一次或多次校准参数对应的检测值来确定当前的检测值是否合格。示例性的,以前一次目标校准参数中色块亮度为100,前一次的检测值为光强度50cd,当前目标校准参数与前一次目标校准参数的区别仅为色块亮度不同,当前目标校准参数中色块亮度为50为例。若当前环境光传感器的检测值为光强度51cd。则此时目标方法可以确定当前环境光传感器的检测值错误。其中,目标方法可以依据两次的检测命令中携带的主副命令来确定两次检测值对应的目标校准参数。
S7114、在环境光传感器检测成功,且没有获取到至少一个校准参数中每个校准参数对应的检测值的情况下,手机的环境光传感器驱动的目标方法通过目标传感器服务向检测应用返回第一检测响应。
S7114后执行S7118。环境光传感器驱动的目标方法通过目标传感器服务向检测应用返回第一检测响应的具体实现可以参照前述实施例中的S709中的具体实现,此处不再赘述。
S7115、在环境光传感器检测成功,且获取到了至少一个校准参数中每个校准参数对应的检测值的情况下,手机的环境光传感器驱动的目标方法通过目标传感器服务向检测应用返回结束响应。
S7115后执行S7119。环境光传感器驱动的目标方法通过目标传感器服务向检测应用返回结束响应的具体实现可以参照前述实施例中的S709中的具体实现,此处不再赘述。
S7116、手机的环境光传感器驱动的目标方法根据至少一个校准参数中每个校准参数对应的检测值确定校准结果。
示例性的,目标方法可以根据不同校准参数对应的显示情况下,环境光传感器检测得到的检测值,计算的到不同显示情况下,显示屏发光的噪声值。例如,具体可以以下述公式1确定噪声值:
之后,在手机后续正常使用的过程中,环境光传感器驱动则可以依据下述公式2来确定真实环境光的光参数。
当然,实际中也可以以其他任意可行的方式确定校准结果。
在手机的环境光传感器驱动的目标方法确定了校准结果后,为了后续手机正常使用过程中环境光传感器驱动的顺利调用,目标方法可以将校准结果存储在第二存储区,即执行S712。
S7117、在环境光传感器检测失败的情况下,手机的环境光传感器驱动的目标方法通过目标传感器服务向检测应用返回第二检测响应。
S7116后执行S71110。环境光传感器驱动的目标方法通过目标传感器服务向检测应用返回第二检测响应的具体实现可以参照前述实施例中的S709中的具体实现,此处不再赘述。
S7118、手机的检测应用接收第一检测响应。
在手机的检测应用接收到第一检测响应的情况下,检测应用则会重新选择新的目标校准参数,并根据新的目标校准参数控制手机进行显示,并获取对应的检测值,即重新从S7111开始执行校准流程。
S7119、手机的检测应用接收结束响应。
在手机的检测应用接收到结束响应后,则手机的检测应用将结束环境光传感器校准流程,进行其他检测流程。
在一些实施例中,为了使得维修人员可以明确环境传感器校准流程已经结束,以使得维修人员进行其他可能的调整。参照图11中所示,在检测应用接收到结束响应后,可以控制手机的显示屏显示校准结束指示信息,例如“校准成功”。
S71110、手机的检测应用接收第二检测响应。
在手机的检测应用接收到第二检测响应的情况下,检测应用可以确定当前环境光传感器的检测出现了问题,但是该问题具体是维修人员操作不当引起还是环境光传感器本身的问题并不能确定。所以,为了能够完成校准,此时检测应用应重新开始执行整个环境光校准流程,即重新从S702开始执行。
进一步的,为了让维修人员去查找问题,检测应用还可以通知手机显示告警信息。示例性的,该告警信息可以为:环境光传感器检测有误,校准失败,将重新开始环境光传感器校准流程。
S712、手机的环境光传感器驱动的目标方法将校准结果存储在第二存储区中。
示例性的,以手机采用安卓系统为例,第二存储区可以为oeminfo。
基于本申请实施例提供的技术方案,该方法具体适用于在手机的主板或屏幕等影响出厂校准好的环境光传感器采集环境光的光参数的设备维修后需要对环境光传感器进行校准的情况下。在该技术方案中,可以通过反射机制去获取手机使用的传感器服务,进而可以顺利调用该手机使用的传感器服务。这样,对于任何类型的手机,都可以顺利调用到传感器服务。在获取到手机的传感器服务之后,可以通过该传感器服务中提供的方法或函数调用预先存储在环境光传感器驱动中的对应该手机中的校准参数。由于该校准参数我们是先定义好的(例如可以是产线上对环境光传感器校准是使用的校准参数),最终只需要根据校准参数在显示屏中进行色块的显示即可。每根据一个校准参数显示一次色块均会通过环境光传感器检测,得到一个检测值。在根据所有校准参数显示完成并得到相应的检测值后,环境光传感器驱动便可以根据这些检测值确定显示屏发光对环境光传感器检测值的噪声,即校准结果。进而在后续手机的使用中根据环境光传感器的检测值,结合该噪声确定真实环境光的光参数。相比于现有技术,本申请中手机的环境传感器校准方案,可以仅依赖手机本身所具备的功能。针对使用不同传感器服务的手机均可方便使用,既不需要开发针对特定手机的特定校准软件,也不会因为重走生产流程导致用户数据丢失,可靠性更好,也更加方便,用户体验更好。
可以理解的是,上述电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对上述电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本申请实施例还提供一种电子设备,该电子设备包括:显示屏、存储器和一个或多个处理器;显示屏、存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如前述实施例提供的环境传感器校准方法。该电子设备的具体结构可参照图4中所示的电子设备的结构。
本申请实施例还提供一种芯片系统,如图12所示,该芯片系统1100包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路102可用于向其它装置(例如处理器1101)发送信号。
示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当指令被处理器1101执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如前述实施例提供的环境传感器校准方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包含可执行指令,当该计算机程序产品在电子设备上运行时,使得电子设备执行如前述实施例提供的环境传感器校准方法。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种环境光传感器校准方法,应用于电子设备,所述电子设备包括目标应用,其特征在于,
所述电子设备响应于检测操作,启动所述目标应用;
所述目标应用通过反射机制获取Binder类;
所述目标应用通过所述Binder类中的服务获取方法获取所述电子设备使用的目标传感器服务;
所述目标应用调用所述目标传感器服务从所述电子设备的环境光传感器驱动获取至少一个校准参数;
所述目标应用根据每个所述校准参数控制所述电子设备的显示屏进行显示,并在每次根据所述校准参数控制所述显示屏进行显示后,调用所述目标传感器服务指示所述环境光传感器驱动获取所述校准参数对应的检测值,并在获取到所有所述校准参数对应的检测值后根据所有所述检测值确定校准结果。
2.根据权利要求1所述的方法,其特征在于,所述目标应用通过所述Binder类中的服务获取方法获取所述目标传感器服务,包括:
所述目标应用通过所述服务获取方法获取到第二传感器服务的情况下,将所述第二传感器服务确定为所述目标传感器服务;
所述目标应用通过所述服务获取方法未获取到所述第二传感器服务的情况下,通过所述服务获取方法获取到第一传感器服务,则将所述第一传感服务确定为所述目标传感器服务;
其中,所述第一传感器服务的版本低于所述第二传感器服务的版本。
3.根据权利要求1所述的方法,其特征在于,所述服务获取方法包括getService。
4.根据权利要求1所述方法,其特征在于,所述目标应用调用所述目标传感器服务从所述电子设备的环境光传感器驱动获取至少一个校准参数,包括:
所述目标应用调用所述目标传感器服务向所述环境光传感器驱动发送启动指令;所述启动指令用于指示环境光传感器启动处于休眠状态的目标方法;
所述环境光传感器驱动接收所述启动指令,启动所述目标方法并调用所述目标传感器服务向所述目标应用返回启动响应;所述启动响应用于指示所述目标方法已启动,且可被调用;
所述目标应用接收所述启动响应;
所述目标应用调用所述目标传感器服务向所述目标方法发送校准参数获取指令;所述校准参数获取指令用于指示所述目标方法返回预存的所述至少一个校准参数;
所述目标方法响应于所述校准参数获取指令,通过所述目标传感器服务向所述目标应用返回所述至少一个校准参数。
5.根据权利要求4所述的方法,其特征在于,所述目标应用调用所述目标传感器服务向所述环境光传感器驱动发送启动指令,包括
所述目标应用调用所述目标传感器服务对所述启动指令进行校验;
在对所述启动指令校验成功的情况下,所述目标应用调用所述目标传感器服务向所述环境光传感器驱动发送所述启动指令。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述目标应用根据每个所述校准参数控制所述电子设备的显示屏进行显示,并在每次根据所述校准参数控制所述显示屏进行显示后,调用所述目标传感器服务指示所述环境光传感器驱动获取所述校准参数对应的检测值,并在获取到所有所述校准参数对应的检测值后根据所有所述检测值确定校准结果,包括:
所述目标应用依据预设规则从所述至少一个校准参数中选择目标校准参数,并根据所述目标校准参数控制所述显示屏进行显示;
所述目标应用调用所述目标传感器服务向所述目标方法传递检测指令;所述检测指令用于指示环境光传感器驱动控制环境光传感器进行环境光检测得到所述目标校准参数对应的检测值;
所述目标方法响应于所述检测指令,控制环境光传感器对环境光进行检测得到所述目标校准参数对应的检测值;
所述目标方法在确定未获取到所述至少一个校准参数中每个校准参数对应的检测值的情况下,通过所述目标传感器服务向所述目标应用返回第一检测响应;所述第一检测响应用于指示环境光检测成功;
所述目标应用接收所述第一检测响应,并重新依据预设规则从所述至少一个校准参数中选择新的目标校准参数,并根据所述新的目标校准参数控制所述显示屏进行显示;
所述目标方法在确定获取到了所述至少一个校准参数中每个校准参数对应的检测值的情况下,所述目标方法根据所有所述校准参数对应的检测值确定校准结果,并通过所述目标传感器服务向所述目标应用返回结束响应;所述结束响应用于指示校准结束。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述目标方法响应于所述检测指令,控制环境光传感器对环境光检测失败的情况下,通过所述目标传感器服务向所述目标应用返回第二检测响应;所述第二检测响应用于指示环境光检测失败。
8.一种电子设备,其特征在于,包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-7任一项所述的环境光传感器校准方法。
9.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-7任一项所述的环境光传感器校准方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211263763.6A CN115326194B (zh) | 2022-10-17 | 2022-10-17 | 一种环境光传感器校准方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211263763.6A CN115326194B (zh) | 2022-10-17 | 2022-10-17 | 一种环境光传感器校准方法、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115326194A CN115326194A (zh) | 2022-11-11 |
CN115326194B true CN115326194B (zh) | 2023-02-17 |
Family
ID=83914297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211263763.6A Active CN115326194B (zh) | 2022-10-17 | 2022-10-17 | 一种环境光传感器校准方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115326194B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116754069B (zh) * | 2023-08-23 | 2023-11-10 | 荣耀终端有限公司 | 校准数据的测试方法、电子设备、测试装备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1417794A (zh) * | 2001-11-06 | 2003-05-14 | 首钢日电电子有限公司 | 校正数据管理系统 |
US8378290B1 (en) * | 2008-09-02 | 2013-02-19 | Flir Systems, Inc. | Sensor calibration systems and methods for infrared cameras |
CN106441402A (zh) * | 2016-08-31 | 2017-02-22 | 北京众清科技有限公司 | 一种传感器组件校准方法、装置及系统 |
CN106646040A (zh) * | 2016-12-05 | 2017-05-10 | 上海希形科技有限公司 | Apf/svg模块自动校准测试系统及测试方法 |
CN109781934A (zh) * | 2017-11-13 | 2019-05-21 | 富士通株式会社 | 环境传感器检测数据的处理装置、处理方法、计算机可读存储介质、以及环境传感器系统 |
CN113806103A (zh) * | 2021-07-08 | 2021-12-17 | 荣耀终端有限公司 | 一种数据处理方法、电子设备、芯片系统及存储介质 |
-
2022
- 2022-10-17 CN CN202211263763.6A patent/CN115326194B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1417794A (zh) * | 2001-11-06 | 2003-05-14 | 首钢日电电子有限公司 | 校正数据管理系统 |
US8378290B1 (en) * | 2008-09-02 | 2013-02-19 | Flir Systems, Inc. | Sensor calibration systems and methods for infrared cameras |
CN106441402A (zh) * | 2016-08-31 | 2017-02-22 | 北京众清科技有限公司 | 一种传感器组件校准方法、装置及系统 |
CN106646040A (zh) * | 2016-12-05 | 2017-05-10 | 上海希形科技有限公司 | Apf/svg模块自动校准测试系统及测试方法 |
CN109781934A (zh) * | 2017-11-13 | 2019-05-21 | 富士通株式会社 | 环境传感器检测数据的处理装置、处理方法、计算机可读存储介质、以及环境传感器系统 |
CN113806103A (zh) * | 2021-07-08 | 2021-12-17 | 荣耀终端有限公司 | 一种数据处理方法、电子设备、芯片系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115326194A (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102222073B1 (ko) | 촬영 방법 및 전자 장치 | |
CN110839096A (zh) | 一种具有折叠屏的设备的触控方法与折叠屏设备 | |
CN112214294B (zh) | 调用硬件接口的方法及电子设备 | |
CN115326194B (zh) | 一种环境光传感器校准方法、电子设备和存储介质 | |
CN111752666A (zh) | 窗口显示方法、装置和终端 | |
CN112817634A (zh) | Cota包下载方法及装置 | |
CN117079596B (zh) | 屏幕亮度调节方法、终端设备及存储介质 | |
CN116567141B (zh) | 数据处理方法和电子设备 | |
CN113784331A (zh) | 更新用户身份识别模块卡系统数据的方法及装置 | |
CN116048955B (zh) | 一种测试方法及电子设备 | |
CN113885928B (zh) | 程序更新方法和电子设备 | |
CN118264920A (zh) | 调节帧间隔的方法和装置 | |
CN114758601A (zh) | 屏幕显示颜色调整方法及电子设备 | |
CN116955208B (zh) | 测试方法、终端设备、芯片及存储介质 | |
CN116672707B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN116688494B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN117726507B (zh) | 图像处理方法及装置 | |
CN114816311B (zh) | 一种屏幕移动的方法和装置 | |
CN117234351B (zh) | 触控处理方法、终端设备以及存储介质 | |
CN116680133B (zh) | 一种黑屏检测方法和电子设备 | |
CN115016666B (zh) | 触控处理方法、终端设备以及存储介质 | |
CN117692786B (zh) | 一种拍摄方法、电子设备和存储介质 | |
CN116744118B (zh) | 确定拍摄参数的方法和装置 | |
CN116700944B (zh) | 一种内存回收方法、装置及电子设备 | |
CN112783993B (zh) | 基于数字地图的多个授权空间的内容同步方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |