一种近场通信nfc功能的控制方法及电子设备

文档序号:1908422 发布日期:2021-11-30 浏览:12次 >En<

阅读说明:本技术 一种近场通信nfc功能的控制方法及电子设备 (Control method of Near Field Communication (NFC) function and electronic equipment ) 是由 尚志磊 武文斌 张东 于 2021-09-10 设计创作,主要内容包括:本申请提供一种近场通信NFC功能的控制方法及电子设备,涉及终端技术领域,可以解决电子设备中NFC功能和相机功能的冲突,同时还可以提高NFC功能和相机功能共用的可能性。其中,在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启;在电子设备启动第二摄像头的情况下,NFC功能关闭。其中,第一摄像头和第二摄像头是电子设备的不同摄像头。该方案可以用于使用摄像头的场景中。(The application provides a control method of a Near Field Communication (NFC) function and electronic equipment, relates to the technical field of terminals, and can solve the conflict between the NFC function and a camera function in the electronic equipment and improve the possibility of sharing the NFC function and the camera function. The NFC function of the electronic equipment is started under the condition that the electronic equipment starts the first camera; and under the condition that the electronic equipment starts the second camera, the NFC function is closed. Wherein the first camera and the second camera are different cameras of the electronic device. The scheme can be used in scenes using cameras.)

一种近场通信NFC功能的控制方法及电子设备

本申请要求于2021年8月12日提交国家知识产权局、申请号为202110927018.6、发明名称为“一种拍摄过程中近场通信NFC功能的控制方法及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

本申请涉及终端技术领域,尤其涉及一种近场通信NFC功能的控制方法及电子设备。

背景技术

目前,手机等电子设备中通常同时提供有相机功能和近场通信(Near FieldCommunication,NFC)功能。其中,相机功能可用于拍照、录像、视频通话等场景,其需要摄像头的传感器(sennsor)模组来采集光信号,并将光信号转换为电信号,从而方便处理和存储。以及,NFC功能可用于读卡、刷卡(如地铁卡)等场景,其需要NFC芯片产生射频场来实现读卡或者刷卡。

然而,发明人在实施本申请实施例的过程中发现,由于硬件原因,某些摄像头的传感器模组模拟的信号可能会和NFC芯片产生的射频场存在耦合,从而使得相机功能和NFC功能存在冲突。其中一种明显的表现为:在使用相机功能(如视频通话)的场景中,若NFC功能为开启状态,则会导致预览有水波纹。

发明内容

本申请实施例提供一种近场通信NFC功能的控制方法及电子设备,可以解决NFC功能和相机功能冲突的问题,同时可以提高NFC功能和相机功能共用的可能性。

第一方面,本申请实施例提供一种近场通信NFC功能的控制方法,应用于可支持NFC功能和相机功能的电子设备。其中,在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启。在电子设备启动第二摄像头的情况下,NFC功能关闭。第一摄像头和第二摄像头是电子设备的不同摄像头,并且,第二摄像头是电子设备中与相机功能存在冲突的摄像头。例如,电子设备中与NFC功能存在冲突的摄像头是后置广角摄像头,则第二摄像头是后置广角摄像头。

综上所述,采用本申请实施例的方法,电子设备启动不同的摄像头,则NFC功能的状态不同。一方面,在电子设备启动冲突的摄像头的情况下,关闭NFC功能。如此,电子设备可以避免NFC功能和相机功能冲突。另一方面,在电子设备启动其他摄像头(除冲突的摄像头之外的摄像头)的情况下,开启NFC功能,电子设备则可以在使用其他摄像头的过程中依然保持NFC功能可用。从而可以提高NFC功能和相机功能共用的可能性。

在第一方面的另一种可能的设计方式中,第二摄像头是后置广角摄像头。

在第一方面的另一种可能的设计方式中,上述在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启;在电子设备启动第二摄像头的情况下,NFC功能关闭,包括:如果电子设备的设备标识为预设标识,在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启,在电子设备启动第二摄像头的情况下,NFC功能关闭。其中,预设标识用于指示明确冲突的摄像头的电子设备。其中,设备标识是设备名称,预设标识是预设名称;或者,设备标识是设备型号,预设标识是预设型号。示例性的,市场上的手机中,已知型号a的手机中冲突的摄像头为后置广角摄像头,型号b的手机中冲突的摄像头为后置长焦摄像头,其余手机无法明确存在冲突的摄像头,则预设标识可以是型号a和型号b。也就是说,电子设备的设备标识为预设标识,则表明该电子设备中与NFC功能存在冲突的摄像头是明确的。

由此可见,采用本实施例的方法,在电子设备中与NFC功能存在冲突的摄像头是明确的情况下,才依据当前启动的摄像头来开启或者关闭NFC功能。从而可以提高对NFC功能控制的合理性。

在第一方面的另一种可能的设计方式中,上述方法还包括:如果电子设备的设备标识不是预设标识,在电子设备启动电子设备中任一摄像头的情况下,NFC功能关闭。其中,电子设备的设备标识不是预设标识,则表明该电子设备中与NFC功能存在冲突的摄像头是不明确的。

由此可见,采用本实施例的方法,在电子设备中与NFC功能存在冲突的摄像头不明确的情况下,则无法依据当前启动的摄像头来开启或者关闭NFC功能,而是在启动任一摄像头时统一关闭NFC功能。从而可以最大可能的避免出现冲突。

在第一方面的另一种可能的设计方式中,电子设备中包括预设配置项,并且可依据电子设备对NFC功能和相机功能的性能需求来设置该预设配置项的状态。不同的手机,对性能的要求不同。例如,有些手机更注重拍摄效果,则通常不会允许预览水波纹的出现。从而需要解决NFC功能和相机功能的冲突,则可设置预设配置项为开启状态。另一些手机更注重NFC功能的可用性,则通常不会允许NFC功能关闭。即不允许关闭NFC功能。从而不需要解决NFC功能和相机功能的冲突,则可设置预设配置项为关闭状态。相应的,上述在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启;在电子设备启动第二摄像头的情况下,NFC功能关闭,包括:如果预设配置项为开启状态,在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启,在电子设备启动第二摄像头的情况下,NFC功能关闭。其中,如果预设配置项为关闭状态,在电子设备启动电子设备中任一摄像头的情况下,NFC功能的状态保持不变。

由此可见,采用本实施例的方法,电子设备可以仅在需要解决冲突时才依据开启的摄像头开启或者关闭NFC功能,避免与电子设备的性能需求相违背。例如,电子设备需要保证NFC功能用,则始终不能关闭NFC功能。

在第一方面的另一种可能的设计方式中,上述在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启;在电子设备启动第二摄像头的情况下,NFC功能关闭之前,方法还包括:电子设备响应于启动相机服务,开启NFC功能。应理解,使用摄像头则必须保证相机服务可用。采用本申请实施例的方案,正常情况下,启动第二摄像头则会关闭NFC功能。在该情况下,若相机服务异常中断,则可能导致NFC功能处于关闭状态而未及时开启。从而影响后续NFC功能的使用。因此,在相机服务启动后,则强制开启NFC功能。如此,可以避免相机服务异常中断而导致NFC功能不可用的问题。

由此可见,采用本实施例的方法,电子设备可以保证NFC功能在初始时是可用的,而后在此基础上进一步依据摄像头来控制NFC功能的开启和关闭。

在第一方面的另一种可能的设计方式中,上述在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启;在电子设备启动第二摄像头的情况下,NFC功能关闭之后,方法还包括:电子设备响应于用户的第一操作(例如,退出相机应用的操作,退出视频通话的操作等),关闭电子设备中的所有摄像头,并开启NFC功能。

由此可见,采用本实施例的方法,电子设备可以在不使用摄像头后,则开启NFC功能,从而保证NFC功能可用。

在第一方面的另一种可能的设计方式中,开启NFC功能,包括:如果预设配置项为开启状态,开启NFC功能。同样的,电子设备可以仅在需要解决冲突时才依据开启的摄像头开启或者关闭NFC功能,避免与电子设备的性能需求相违背

在第一方面的另一种可能的设计方式中,上述电子设备启动第二摄像头,包括:电子设备响应于用户的第二操作(如调解变焦条到第二摄像头对应的倍率的操作),关闭第一摄像头,启动第二摄像头。上述电子设备启动第一摄像头,包括:电子设备响应于用户的第三操作(如调解变焦条到第一摄像头对应的倍率的操作),关闭第二摄像头,启动第一摄像头。也就是说,第一摄像头和第二摄像头是可以通过用户的操作而互相切换。

由此可见,采用本实施例的方法,电子设备可以随摄像头的切换,灵活控制NFC功能处于不同的状态。从而可以进一步增加NFC功能和相机功能共用的可能性。例如,在一次录制视频的过程中,在使用第一摄像头的时间段内控制NFC功能处于开启状态,在使用第二摄像头的时间段内控制NFC功能处于关闭状态。

在第一方面的另一种可能的设计方式中,上述在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启,包括:如果电子设备的NFC功能未响应于用户的操作处于关闭状态,即,用户未手动关闭NFC功能,则在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启。

由此可见,采用本实施例的方法,若用户未手动关闭NFC功能,才能在启动不冲突的摄像头的情况下,开启NFC功能。从而避免与用户的意愿相违背。

在第一方面的另一种可能的设计方式中,上述方法还包括:如果电子设备的NFC功能响应于用户的操作处于关闭状态,即用户手动关闭了NFC功能,则在电子设备启动第一摄像头的情况下,电子设备的NFC功能关闭。

由此可见,采用本实施例的方法,若用户手动关闭了NFC功能,则即使启动不冲突的摄像头,电子设备也依然会保持NFC功能关闭,而不会开启NFC功能。从而避免与用户的意愿相违背。

在第一方面的另一种可能的设计方式中,上述电子设备开启NFC功能,包括:电子设备的相机服务向电子设备的NFC服务发送第一消息;NFC服务响应于第一消息,开启NFC功能。或者,上述电子设备关闭NFC功能,包括:电子设备的相机服务向电子设备的NFC服务发送第二消息;NFC服务响应于第二消息,关闭NFC功能。

由此可见,采用本实施例的方法,电子设备可以通过相机服务向NFC服务发送消息,来控制NFC功能的开启或关闭。

在第一方面的另一种可能的设计方式中,相机服务中记录有相机服务上一次成功向NFC服务发送的消息;其中,消息为第一消息或第二消息。上述电子设备的相机服务向电子设备的NFC服务发送第一消息,包括:如果相机服务上一次成功向NFC服务发送第二消息,相机服务向NFC服务发送第一消息;其中,若相机服务上一次成功向NFC服务发送第一消息,相机服务则不向NFC服务发送第一消息。上述电子设备的相机服务向电子设备的NFC服务发送第二消息,包括:如果相机服务上一次成功向NFC服务发送第一消息,相机服务向NFC服务发送第二消息;其中,若相机服务上一次成功向NFC服务发送第二消息,相机服务则不向NFC服务发送第二消息。

由此可见,采用本实施例的方法,相机服务向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息之前,先查询记录的消息和待发送的消息是否相同,若记录的消息和待发送的消息不同,相机服务则进一步向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息。若记录的消息和待发送的消息相同,相机服务不向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息。从而,可以避免连续向NFC服务发送相同的消息,减少相机服务和NFC服务之间的跨进程通信,降低手机功耗。

在第一方面的另一种可能的设计方式中,上述在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启,包括:电子设备中的相机驱动启动一个摄像头后,向电子设备中的相机硬件抽象层发送摄像头采集的图像的第一预览帧数据和摄像头的摄像头标识。相机硬件抽象层将摄像头标识添加到第一预览帧数据中,得到第二预览帧数据,向电子设备的相机服务发送第二预览帧数据。如果电子设备的设备标识是预设标识,相机服务从第二预览帧数据中获取摄像头标识。相机服务在摄像头标识指示摄像头为第一摄像头的情况下,向NFC服务发送第一消息。NFC服务响应于第一消息,开启NFC功能。

或者,在电子设备启动第一摄像头的情况下,电子设备的NFC功能开启,包括:电子设备中的相机驱动启动一个摄像头后,向电子设备中的相机硬件抽象层发送摄像头采集的图像的第一预览帧数据和摄像头的摄像头标识。相机硬件抽象层将摄像头标识添加到第一预览帧数据中,得到第二预览帧数据,向电子设备的相机服务发送第二预览帧数据。如果电子设备的设备标识是预设标识,相机服务从第二预览帧数据中获取摄像头标识。相机服务在摄像头标识指示摄像头为第二摄像头的情况下,向NFC服务发送第二消息。NFC服务响应于第二消息,关闭NFC功能。

由此可见,采用本实施例的方法,相机硬件抽象层可以将当前启动的摄像头的摄像头标识添加到预览帧数据中,而后上报给相机服务。从而方便相机服务获取到摄像头标识,并用于确定当前启动的摄像头是否为冲突的摄像头。并且,从应用程序向底层传输启动摄像头的请求中,仅携带功能参数,从该功能参数中,相机服务通常只能确定应用程序需要实现的功能。而具体启动的摄像头,是由底层根据该功能参数确定的。因此,在底层启动摄像头后,通过将底层上报的摄像头标识添加到预览帧数据而后上报给相机服务,可以保证相机服务获取到准确的摄像头标识。最终可以提高对NFC功能控制的准确性。

第二方面,本申请实施例还提供一种电子设备,所述电子设备支持相机功能和NFC功能,所述电子设备包括显示屏、存储器和一个或多个处理器。所述显示屏、所述存储器和所述处理器耦合。所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如下步骤:在所述电子设备启动第一摄像头的情况下,所述电子设备的NFC功能开启。在所述电子设备启动第二摄像头的情况下,所述NFC功能关闭。其中,所述第一摄像头和所述第二摄像头是所述电子设备的不同摄像头。

在第二方面的另一种可能的设计方式中,所述第二摄像头是后置广角摄像头。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:如果所述电子设备的设备标识为预设标识,在所述电子设备启动第一摄像头的情况下,所述电子设备的NFC功能开启,在所述电子设备启动第二摄像头的情况下,所述NFC功能关闭。其中,所述设备标识是设备名称,所述预设标识是预设名称;或者,所述设备标识是设备型号,所述预设标识是预设型号。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:如果所述电子设备的设备标识不是所述预设标识,在所述电子设备启动所述电子设备中任一摄像头的情况下,所述NFC功能关闭。

在第二方面的另一种可能的设计方式中,所述电子设备中包括预设配置项。

当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:如果所述预设配置项为开启状态,在所述电子设备启动所述第一摄像头的情况下,所述电子设备的NFC功能开启,在所述电子设备启动所述第二摄像头的情况下,所述NFC功能关闭;其中,如果所述预设配置项为关闭状态,在所述电子设备启动所述电子设备中任一摄像头的情况下,所述NFC功能的状态保持不变。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:所述电子设备响应于启动相机服务,开启所述NFC功能。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:所述电子设备响应于用户的第一操作,关闭所述电子设备中的所有摄像头,并开启所述NFC功能。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:如果所述预设配置项为开启状态,开启所述NFC功能。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:所述电子设备响应于用户的第二操作,关闭所述第一摄像头,启动所述第二摄像头。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:所述电子设备响应于用户的第三操作,关闭所述第二摄像头,启动所述第一摄像头。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:如果所述电子设备的NFC功能未响应于用户的操作处于关闭状态,在所述电子设备启动第一摄像头的情况下,所述电子设备的NFC功能开启。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:如果所述电子设备的NFC功能响应于用户的操作处于关闭状态,在所述电子设备启动第一摄像头的情况下,所述电子设备的NFC功能关闭。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:所述电子设备的相机服务向所述电子设备的NFC服务发送第一消息;所述NFC服务响应于所述第一消息,开启所述NFC功能。或者,所述电子设备的相机服务向所述电子设备的NFC服务发送第二消息;所述NFC服务响应于所述第二消息,关闭所述NFC功能。

在第二方面的另一种可能的设计方式中,所述相机服务中记录有所述相机服务上一次成功向所述NFC服务发送的消息;其中,所述消息为所述第一消息或所述第二消息。

当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:如果所述相机服务上一次成功向所述NFC服务发送第二消息,所述相机服务向所述NFC服务发送第一消息;其中,若所述相机服务上一次成功向所述NFC服务发送所述第一消息,所述相机服务则不向所述NFC服务发送所述第一消息。如果所述相机服务上一次成功向所述NFC服务发送第一消息,所述相机服务向所述NFC服务发送所述第二消息;其中,若所述相机服务上一次成功向所述NFC服务发送所述第二消息,所述相机服务则不向所述NFC服务发送所述第二消息。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:所述电子设备中的相机驱动启动一个摄像头后,向所述电子设备中的相机硬件抽象层发送所述摄像头采集的图像的第一预览帧数据和所述摄像头的摄像头标识。所述相机硬件抽象层将所述摄像头标识添加到所述第一预览帧数据中,得到第二预览帧数据,向所述电子设备的相机服务发送所述第二预览帧数据。如果所述电子设备的设备标识是预设标识,所述相机服务从所述第二预览帧数据中获取所述摄像头标识。所述相机服务在所述摄像头标识指示所述摄像头为所述第一摄像头的情况下,向所述NFC服务发送第一消息。所述NFC服务响应于所述第一消息,开启所述NFC功能。

在第二方面的另一种可能的设计方式中,当所述计算机指令被所述处理器执行时,使得所述电子设备还执行如下步骤:所述电子设备中的相机驱动启动一个摄像头后,向所述电子设备中的相机硬件抽象层发送所述摄像头采集的图像的第一预览帧数据和所述摄像头的摄像头标识。所述相机硬件抽象层将所述摄像头标识添加到所述第一预览帧数据中,得到第二预览帧数据,向所述电子设备的相机服务发送所述第二预览帧数据。如果所述电子设备的设备标识是预设标识,所述相机服务从所述第二预览帧数据中获取所述摄像头标识。所述相机服务在所述摄像头标识指示所述摄像头为所述第二摄像头的情况下,向所述NFC服务发送第二消息。所述NFC服务响应于所述第二消息,关闭所述NFC功能。

第三方面,本申请实施例提供一种芯片系统,该芯片系统应用于包括显示屏和存储器的电子设备;所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。

第四方面,本申请提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式所述的方法。

第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。

可以理解地,上述提供的第二方面所述的电子设备,第三方面所述的芯片系统,第四方面所述的计算机存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。

附图说明

图1A为本申请实施例适用的一种场景示意图;

图1B为本申请实施例适用的另一种场景示意图;

图2为本申请实施例提供的手机的硬件结构的示意图;

图3为本申请实施例提供的手机的软件结构框图;

图4A为本申请实施例提供的一种NFC功能的控制方法的交互图;

图4B为本申请实施例提供的打开相机的操作的示意图;

图4C为本申请实施例提供的NFC功能的控制方法的一种效果的示意图;

图5为本申请实施例适用的另一种场景的示意图;

图6A为本申请实施例提供的另一种NFC功能的控制方法的交互图;

图6B为本申请实施例提供的NFC功能的控制方法的另一种效果示意图;

图7A为本申请实施例提供的另一种NFC功能的控制方法的交互图;

图7B为本申请实施例提供的NFC功能的控制方法的另一种效果示意图;

图8A为本申请实施例提供的另一种NFC功能的控制方法的交互图;

图8B为本申请实施例提供的另一种NFC功能的控制方法的交互图;

图9为本申请实施例提供的一种NFC功能的控制方法的流程图;

图10为本申请实施例提供的另一种NFC功能的控制方法的流程图;

图11为本申请实施例提供的一种芯片系统的结构图。

具体实施方式

本申请实施例提供的NFC功能的控制方法,可以适用于各种使用摄像头(也可以理解为使用相机功能)的场景。

参照图1A,其为本申请实施例适用的一种场景示意图。该场景中,在开启手机100的相机应用后,手机100的拍照界面中显示有摄像头采集的预览图像。本申请实施例的NFC功能的控制方法,可用于图1A所示的场景,以避免预览图像中出现水波纹。

参照图1B,其为本申请实施例适用的另一种场景示意图。该场景中,在开启三方应用,如微信TM、钉钉TM中的视频通话后,手机100的通话界面中显示有摄像头采集的预览图像。本申请实施例的NFC功能控制方法,可用于图1B所示的场景,以避免预览图像中出现水波纹。

应理解,图1A和图1B仅为本申请实施例适用的两种场景的示例,本申请实施例提供的NFC功能的控制方法还可以适用于其他“使用摄像头”的场景中。

另外,图1A和图1B主要以手机为例,来说明本申请实施例适用的场景,实际实施时,本申请实施例提供的NFC功能的控制方法还可以适用于其他可支持NFC功能和相机功能的电子设备中。

示例性的,本申请实施例中的电子设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等同时支持相机功能和NFC功能的设备,本申请实施例对该设备的具体形态不作特殊限制。

在详细说明本申请实施例提供的NFC功能的控制方法之前,先在此介绍电子设备的结构。

参照图2,为本申请实施例提供的一种电子设备的硬件结构示意图。如图2所示,以电子设备是手机100为例,手机100可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。

可以理解的是,本实施例示意的结构并不构成对手机100的具体限定。在另一些实施例中,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。

处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。

控制器可以是手机100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。

充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块240可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块240可以通过手机100的无线充电线圈接收无线充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为手机供电。

电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,外部存储器,显示屏294,摄像头293,和无线通信模块260等供电。电源管理模块241还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。

手机100的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。

手机100通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。

显示屏294用于显示图像,视频等。该显示屏294是上述折叠屏(如柔性折叠屏或多屏折叠屏)。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。

手机100可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及APP处理器等实现拍摄功能。

外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机100的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等媒体文件保存在外部存储卡中。

内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行手机100的各种功能APP以及数据处理。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。

手机100可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。

按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。手机100可以接收按键输入,产生与手机100的用户设置以及功能控制有关的键信号输入。

马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏294不同区域的触摸操作,马达291也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。

指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。

SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和手机100的接触和分离。手机100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口295可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口295也可以兼容不同类型的SIM卡。SIM卡接口295也可以兼容外部存储卡。手机100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,手机100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在手机100中,不能和手机100分离。

参照图3,为本申请实施例提供的一种电子设备的软件结构框图。电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明手机100的软件结构。

如图3所示,分层架构可将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层(简称应用层)310,应用程序框架层(简称框架层)320,硬件抽象层(hardwareabstract layer,HAL)层330,以及内核层(Kernel,也称为驱动层)340。

其中,应用层(Application)310可以包括一系列应用程序包。该多个应用程序包可以为相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息以及桌面启动(Launcher)等应用程序。

本申请实施例中,该应用层310可以包括相机系统应用(也称为相机应用)311。相机应用311的运行,例如,拍照、录像等,都需要使用摄像头。

本申请实施例中,该应用层310还可以包括其它需要使用摄像头的应用(也称为三方应用)312。例如,微信TM的视频通话功能、美颜相机TM的拍照功能、淘宝TM的拍照识图功能等都需要使用摄像头,则该其他三方应用312可以是微信TM、美颜相机TM、淘宝TM等应用。

如图3所示,相机应用311和三方应用312可以用于在取景界面(如图1A中的拍照界面、图1B中的视频界面)中展示底层上报的预览图像。其中,手机100可以包括多个摄像头,每个摄像头都可以用于采集预览图像。另外,为了方便说明,在本文中,将当前采集预览图像的摄像头称为预览摄像头。

应用层310可以根据用户操作指示底层(如内核层340)启动对应的摄像头。例如,用户打开相机应用311并进入拍照模式(假设拍照模式默认采用的是后置主摄像头),则应用层310可指示底层(如内核层340)开启后置主摄像头。应用层310还可以根据用户的操作指示底层(如内核层340)关闭对应的摄像头。在关闭对应的摄像头后,相机应用311和三方应用312则不会显示该摄像头的取景图像。

框架层(Framework)320为应用程序层提供应用编程接口(applicationprogramming interface,API)和编程框架。框架层320包括一些预先定义的函数。如图3所示,框架层320可以提供相机API,如Camera API(API 1|API 2)321、相机服务(CameraService)322和NFC服务323。

其中,Camera API(API 1|API 2)321作为底层(如硬件抽象层330)与应用层310交互的接口。具体的,Camera API(API 1|API 2)321可以接收来自上层(如应用层310)的开启摄像头或者切换摄像头的请求,并通过相机服务322处理该请求。然后,通过HAL层330指示内核层340开启相应的摄像头,并通过HAL层330获得预览摄像头采集的预览图像。

本申请实施例中,相机服务322可用于根据来自应用层310的请求和/或根据来自下层(如HAL层330)上报的预览帧数据来得到处理NFC功能和相机功能冲突的策略。相机服务322在得到处理策略后,还可用于向NFC服务323发送控制NFC功能开启或者关闭的消息。从而可以解决NFC功能和相机功能冲突的问题。

本申请实施例中,NFC服务323可用于根据来自相机服务322的消息类型,如关闭NFC的消息类型或者开启NFC的消息类型,来控制NFC芯片的状态。从而可以避免NFC功能和相机功能的冲突。

HAL层330用于连接框架层320和内核层340。例如,HAL层330可以在框架层320和内核层340之间进行数据传输。当然,HAL层330也可以对来自底层(即内核层340)的数据进行处理,然后再传输给框架层320。

如图3所示,HAL层430可以包括HAL接口定义语言(HAL interface definitionlanguage,HIDL)接口331、相机硬件抽象层(Camera Provider)332和HAL接口。其中,相机硬件抽象层332通过提供标准的HIDL接口给上层(如相机服务322)进行调用,保持与上层的正常通信。以及,相机硬件抽象层332通过标准的HAL接口,如HAL3.0,向下控制内核层340,并获取内核层340上报的预览帧数据。

本申请实施例中,相机硬件抽象层332可以将获取的预览帧数据上报给上层(如相机服务322)。在一些实施例中,相机硬件抽象层332还可以将预览摄像头的摄像头类型上报给上层(如相机服务322),从而便于上层(如相机服务322)准确的检测冲突并解决冲突。

内核层340包括相机驱动341、图像信号处理器ISP 342和Camera器件343。该Camera器件343可以包括多个摄像头,每个摄像头包括相机镜头和图像传感器器等。其中,上述图像信号处理器ISP 342可以与摄像头(如Camera器件343)单独设置。在另一些实施例中,上述图像信号处理器ISP 342可以设置在摄像头(如Camera器件343)中。

其中,图像信号处理器ISP 342和Camera器件343是拍摄视频或图片的主要设备。取景环境反射的光信号经过相机镜头照射在图像传感器上可转换为电信号,该电信号经过图像信号处理器ISP 342的处理,可作为原始参数流(即视频流),由相机驱动341向上层传输。并且,相机驱动341还可以接收来自上层的通知(如指示开启或关闭摄像头的通知),根据该通知向Camera器件343发送功能处理参数流,以开启或关闭对应的摄像头。

本申请实施例提供的NFC功能的控制方法,可以在具有上述硬件结构和软件结构的手机100中实现。

图4A为本申请实施例提供的一种NFC功能的控制方法的流程图。参照图4A,本申请实施例提供的NFC功能的控制方法可以包括:

S401、应用程序响应于用户打开相机的操作,向相机服务发送启动摄像头的请求。

在S401之前,应用程序可接收用户打开相机的操作。其中,应用程序可以是相机应用311或者三方应用312。

在一些实施例中,打开相机的操作包括触发手机100在前台运行相机应用311的操作。例如,打开相机的操作是用户对图4B中的(a)示出的主界面401b中图标402b的点击操作,图标402a是相机应用311的应用图标。

或者,打开相机的操作包括触发手机100在前台运行三方应用312中使用摄像头的功能的操作。以三方应用312是微信TM为例,则使用摄像头的功能可以是视频通话的功能。相应的,打开相机的操作可以是用户对微信TM中视频通话的按钮的点击操作。

在另一些实施例中,打开相机的操作包括拍摄模式的切换操作。相机应用311或者三方应用312中使用摄像头的功能中,可以提供多种拍摄模式,如拍照模式、录像模式、人像模式、夜景模式、专业模式等。相应的,打开相机的操作可以是从一种拍摄模式切换到另一种拍摄模式的操作。以相机应用311为例,在启动相机应用311后,手机100可显示图4B中的(b)示出的拍照模式的取景界面403b,打开相机的操作可以是用户对除拍照模式之外的任一模式的选择操作,如对专业模式的选择操作。

应理解,在一次拍摄过程中,用户可以多次切换拍摄模式,每次拍摄模式的切换操作都可以视为一次打开相机的操作。

在另一些实施例中,打开相机的操作包括预设摄像头之间的切换操作。示例性的,预设摄像头之间的切换操作可以是前置摄像头和后置摄像头之间的切换操作。以相机应用311为例,在启动相机应用311后,手机100可显示图4B中的(c)示出的取景界面404b,打开相机的操作可以是用户取景界面404b中切换摄像头按钮405b的点击操作。

应注意,预设摄像头之间的切换操作通常不包括多个后置摄像头之间的切换操作。例如,用户对图4B中的(d)示出的取景界面406b中变焦条407b的滑动操作,可以在多个后置摄像头之间的切换,则打开相机的操作不包括用户对图4B中的(d)示出的取景界面406b中变焦条407b的滑动操作。也就是说,用户对取景界面中变焦条的滑动操作,不会触发开始执行本申请方案。

在应用程序接收到上述用户打开相机的操作后,应用程序可调用相机接口(如openCamera接口),以请求启动摄像头,即向相机服务发送启动摄像头的请求。其中,该启动摄像头的请求中携带有用于指示前后置类型、拍摄模式和/或变焦倍率的功能参数。从而可以明确指示底层启动一个或多个摄像头来满足相应功能的需求。

示例性的,假设打开相机应用311默认需要显示图4B中的(b)示出的取景界面403b,且取景界面403b中采用后置、且变焦倍率为1倍的摄像头取景,拍摄模式为拍照模式,则功能参数可以是{7,1x,0}。其中,7用于指示后置摄像头,1x用于指示1倍的变焦倍率,0用于指示拍照模式。

S402、相机服务响应于接收到启动摄像头的请求,向NFC服务发送关闭NFC功能的消息。

在S402之前,相机服务可接收来自应用程序的启动摄像头的请求。

本申请实施例中,相机服务接收到启动摄像头的请求后,则向NFC服务发送关闭NFC功能的消息,如CLOSE_NFC_MSG,以指示NFC服务关闭NFC功能。

应理解,相机服务在接收到启动摄像头的请求后,第一方面需要处理冲突,即关闭NFC功能。第二方面依然需要继续向下层传输启动摄像头的请求,启动相应的摄像头,并最终实现在取景界面中的预览。该第二方面的具体实现,可根据现有技术中的方式来实现,此处不再赘述。

S403、NFC服务响应于接收到关闭NFC功能的消息,控制NFC芯片进入空闲状态。

在S403之前,NFC服务可接收来自相机服务的关闭NFC功能的消息。

本申请实施例中,NFC服务在接收到来自相机服务的关闭NFC功能的消息后,则可控制NFC芯片进入空闲状态,即IDLE状态。NFC芯片进入IDLE状态后,则不会产生射频场,其刷卡、读卡等功能关闭。应理解,NFC芯片不产生射频场,则不会对摄像头的传感器模组模拟的信号产生干扰。从而可以避免相机功能和NFC功能的冲突。

示例性的,手机100可接收用户对图4C中的(a)示出的主界面410c中图标402c的点击操作。手机100响应于用户对图标402c的点击操作,可显示图4C中的(b)示出的取景界面403c。采用本申请实施例的方案,在显示取景界面403c时,则关闭NFC功能,从而不会干扰摄像头取景。应理解,取景界面403c中显示的“NFC功能已关闭”仅为一种示意,用于表示此时NFC功能已经关闭了。实际实施时,通常不会显示。

S404、应用程序响应于用户关闭相机的操作,向相机服务发送关闭摄像头的请求。

在S404之前,应用程序可接收用户关闭相机的操作(也可以称为第一操作)。其中,关闭相机的操作与打开相机的操作相对应。关闭相机也可以理解为关闭所有摄像头

在一些实施例中,打开相机的操作包括触发手机100在前台运行相机应用311的操作,则关闭相机的操作可包括触发手机100退出在前台运行相机应用的操作。例如,上滑退回手机100的主界面的操作。或者,打开相机的操作包括触发手机100在前台运行三方应用312中使用摄像头的功能的操作,则关闭相机的操作可包括触发手机100退出在前台运行三方应用312中使用摄像头的功能的操作。

在另一些实施例中,打开相机的操作包括拍摄模式的切换操作,关闭相机的操作也可包括拍摄模式的切换操作。应理解,一次拍摄模式的切换操作,包含两层含义:一层是关闭当前的拍摄模式,另一层是开启新的拍摄模式。其中,关闭当前的拍摄模式对应关闭相机,开启新的拍摄模式对应打开相机。因此,一次拍摄模式的切换操作,先后依次要触发关闭相机和打开相机。也就是说,在手机100接收到拍摄模式的切换操作后,首先要响应用户关闭相机的操作,向相机服务发送关闭摄像头的请求。而后要响应用户打开相机的请求,向相机服务发送开启摄像头的请求。

在另一些实施例中,打开相机的操作包括预设摄像头之间的切换操作,关闭相机的操作也可以包括预设摄像头之间的切换操作。与拍摄模式的切换操作类似,一次预设摄像头之间的切换操作,包含两层含义:一层是关闭当前的摄像头,另一层是开启新的摄像头。相应的,在手机100接收到预设摄像头之间的切换操作后,首先要响应用户关闭相机的操作,向相机服务发送关闭摄像头的请求。而后要响应用户打开相机的请求,向相机服务发送开启摄像头的请求。

在应用程序接收到上述用户关闭相机的操作后,应用程序可调用相机接口(如closeCamera接口),以请求关闭摄像头,即向相机服务发送关闭摄像头的请求。

S405、相机服务响应于接收到关闭摄像头的请求,向NFC服务发送开启NFC功能的消息。

在S405之前,相机服务可接收来自应用程序的关闭摄像头的请求。

本申请实施例中,相机服务接收到关闭摄像头的请求后,则向NFC服务发送开启NFC功能的消息,如OPEN_NFC_MSG,以指示NFC服务开启NFC功能。

应理解,相机服务在接收到关闭摄像头的请求后,第一方面需要处理冲突,即开启NFC功能。第二方面依然需要继续向下层传输关闭摄像头的请求,关闭相应的摄像头,并最终实现停止在取景界面中的预览。该第二方面的具体实现,可根据现有技术中的方式来实现,此处不再赘述。

S406、NFC服务响应于接收到开启NFC功能的消息,控制NFC芯片退出空闲状态。

在S406之前,NFC服务可接收来自相机服务的开启NFC功能的消息。

本申请实施例中,NFC服务在接收到来自相机服务的开启NFC功能的消息后,则可控制NFC芯片退出空闲状态,即退出IDLE状态。NFC芯片退出IDLE状态后,则可恢复刷卡、读卡等功能。也就是说,在关闭相机后,可开启NFC功能,使得NFC功能可用。此时也不会存在冲突。

应理解,在手机100开机启动后,相机服务则会随之启动。本申请实施例中,正常情况下,打开相机,则会关闭NFC功能。在该情况下,若相机服务异常中断,则可能导致NFC功能处于关闭状态而未及时开启。从而影响后续NFC功能的使用。

基于此,在一些实施例中,在相机服务启动(包括正常启动或者异常重启)后,相机服务可通知NFC服务开启NFC功能。从而可在相机服务启动后,强制开启NFC服务。如此,可以避免相机服务异常中断而导致NFC功能不可用的问题。

综上所述,采用本实施例的方法,相机服务可以在开启摄像头的场景中控制关闭NFC功能,而在关闭摄像头的场景中控制开启NFC功能。如此,可以避免NFC功能和相机功能的冲突,并且可以在不使用摄像头的场景中保证NFC功能可用。

上述图4A所示的实施例,相机服务在接收到启动摄像头的请求后,则关闭NFC功能。这种解决冲突的方式,可以最大程度的避免NFC功能和相机功能的冲突。与此同时,也会导致在使用相机功能的过程中完全无法使用NFC功能。从而使得NFC功能和相机功能无法共用。

示例性的,参照图5,在一种场景中,视频通话需要使用摄像头,则在视频通话的场景中会关闭NFC功能,从而导致NFC功能不可用。若用户边视频通话边前往地铁闸机500,由于此时NFC功能已关闭,则用户无法在视频通话的过程中使用手机100完成地铁进出站刷卡。

基于此,本申请实施例还提供了另一种NFC功能的控制方法,可以在图4A所示的实施例的基础上,提高相机功能和NFC功能共同使用的可能性。

参照图6A,在S401之后,本申请实施例提供的NFC功能的控制方法可以包括:

S601、相机服务响应于接收到启动摄像头的请求,向相机硬件抽象层发送启动摄像头的请求。

S602、相机硬件抽象层响应于接收到启动摄像头的请求,向内核层发送启动摄像头的请求。

S603、内核层响应于接收到启动摄像头的请求,启动预览摄像头并采集预览图像。

其中,可以是内核层中的相机驱动来启动摄像头。

例如,启动摄像头的请求中包括功能参数{7,1x,0},其中,7用于指示后置摄像头,1x用于指示1倍的变焦倍率,0用于指示拍照模式,则内核层可启动后置主摄像头。

S604、内核层向相机硬件抽象层上报预览图像的预览帧数据和预览摄像头的摄像头类型。

其中,预览图像也可以被称为第一图像,预览帧数据也可以被称为第一预览帧数据。在一些实施例中,摄像头和摄像头类型可以一一对应。该情况下,摄像头类型的含义同摄像头标识。

上述S601至S604,可以按照现有技术中开启摄像头并采集预览图像上报的流程来处理,此处不再赘述。

在不同的手机中,底层采用摄像头的传感器模组、NFC芯片等硬件是不同的。相应的,不同手机中,与NFC芯片产生的射频场存在耦合的摄像头(即冲突的摄像头)的类型也可能不同。其中,摄像头类型包括但不限于后置广角类型、后置长焦类型、后置单目类型、后置红外类型、后置彩色类型、后置深度类型、后置微距类型、后置主摄类型和前置类型中的至少一种。

示例一,型号a的手机中,NFC芯片产生的射频场与后置广角摄像头的传感器模组模拟的信号存在耦合,而与其他摄像头的传感器模组模拟的信号不存在耦合,则对应型号a的手机,冲突的摄像头的类型(如预设类型)为后置广角类型。

示例二,型号b的手机中,NFC芯片产生的射频场与后置红外摄像头的传感器模组模拟的信号存在耦合,而与其他摄像头的传感器模组模拟的信号不存在耦合,则对应型号b的手机,冲突的摄像头的类型(如预设类型)为后置红外类型。

基于此,本申请实施例中,相机硬件抽象层在接收到来自内核层的预览帧数据和摄像头类型后,可通过如下S605-S608来根据摄像头类型控制NFC功能的开启与关闭,以实现有针对性的控制。从而提高相机功能和NFC功能共同使用的可能性。应注意,预览摄像头采集预览图像是持续的,并且,随着预览摄像头不断采集预览图像,则不断会有预览帧数据和摄像头类型的上报,相应的,S604及其后续步骤是随着预览图像的采集而持续的。

S605、相机硬件抽象层响应于接收到预览帧数据和摄像头类型,将摄像头类型添加到预览帧数据,得到更新的预览帧数据。

其中,新的预览帧数据也可以被称为第二预览帧数据。

本申请实施例中,在摄像头开始采集预览图像,并通过内核层上报预览帧数据给相机硬件抽象层后,相机硬件抽象层将摄像头类型添加到预览帧数据中,如添加到预览帧数据中的元数据(即meta数据)中,以供后续检测是否存在冲突。

示例性的,相机硬件抽象层可以按照下表1所示的对应关系来添加摄像头类型。

表1

序号 摄像头类型 类型值
1 后置广角类型 HWA_PHYSICAL_CAMERA_WIDE
2 后置长焦类型 HWA_PHYSICAL_CAMERA_TELE
3 后置单目类型 HWA_PHYSICAL_CAMERA_MONO
4 后置红外类型 HWA_PHYSICAL_CAMERA_IR
5 后置彩色类型 HWA_PHYSICAL_CAMERA_RGB
6 后置深度类型 HWA_PHYSICAL_CAMERA_TOF
7 后置微距类型 HWA_PHYSICAL_CAMERA_MACRO
8 后置主摄类型 HWA_PHYSICAL_CAMERA_MAIN
9 未知类型 HWA_PHYSICAL_CAMERA_NONE
10 无类型 HWA_PHYSICAL_CAMERA_MAX

例如,相机硬件抽象层接收到的摄像头类型是后置广角类型,相机硬件抽象层则可在meta数据中添加摄像头类型的类型值为HWA_PHYSICAL_CAMERA_WIDE。

又如,相机硬件抽象层接收到的摄像头参数中的摄像头类型是后置主摄类型,相机硬件抽象层则可在meta数据中添加摄像头类型的类型值为HWA_PHYSICAL_CAMERA_MAIN。

在一些实施例中,如表1所示,摄像头类型还包括未知摄像头,若内核层上报的摄像头类型不是表1中罗列的摄像头类型,则是未知摄像头。例如,手机100配置的摄像头中包括新型摄像头a,该新型摄像头a还未被记录到表1中,则当内核层上报的摄像头为新型摄像头a时,相机硬件抽象层无法从表1中查找到该新型摄像头a。该情况下,相机硬件抽象层可将新型摄像头a归类为未知摄像头,并赋予类型值HWA_PHYSICAL_CAMERA_NONE而后添加到预览帧数据中。如此,即使摄像头类型目前未被记录在表1中,也可以被赋予对应的类型值。

在一些实施例中,如表1所示,摄像头类型还包括无类型。通常而言,只有明确冲突的摄像头的类型(如预设类型),才能准确的依据摄像头类型来有针对性的处理冲突。基于此,针对不明确冲突的摄像头的类型的手机,均可以添加摄像头类型为无类型,并赋予类型值HWA_PHYSICAL_CAMERA_MAX,以便与明确冲突的手机中的摄像头类型区别开。从而方便后续冲突检测。

应理解,相机硬件抽象层在接收到预览帧数据后,第一方面需要将摄像头类型添加到预览帧数据中,以便后续检测冲突。第二方面需要将预览帧数据继续上报,以供应用程序显示预览。关于该第二方面的具体实现,可参见现有技术中的方式,在此不再赘述。

S606、相机硬件抽象层向相机服务发送更新的预览帧数据。

本申请实施例中,相机硬件抽象层将更新的预览帧数据发送给相机服务,以便相机服务检测冲突。而不只是将原始的预览帧数据向上传输以供应用程序显示预览。

S607、相机服务响应于接收到更新的预览帧数据,从更新的预览帧数据中获取摄像头类型。

其中,相机服务可以从更新的预览帧数据中的meta数据中解析出摄像头类型。

需要在此说明的是,从应用程序向底层传输启动摄像头的请求中,仅携带功能参数,从该功能参数中,相机服务通常只能确定应用程序需要实现的功能。而具体启动的摄像头,是由底层根据该功能参数确定的。因此,本申请实施例中,在底层启动摄像头后,通过将底层上报的摄像头类型添加到预览帧数据而后上报给相机服务,可以保证相机服务获取到准确的摄像头类型。

S608、相机服务响应于获取的摄像头类型为预设类型,向NFC服务发送关闭NFC功能的消息。

其中,预设类型的摄像头可以被称为第二摄像头,关闭NFC功能的消息也可以被称为第二消息。

其中,预设类型是手机100中,与NFC芯片产生的射频场存在耦合的摄像头(即冲突的摄像头)的类型。诚如前文所述,不同手机中,冲突的摄像头的类型可能不同。例如,荣耀magic3中,冲突的摄像头的类型是后置广角类型,即预设类型是后置广角类型。荣耀magic4中,冲突的摄像头是后置深度摄像头,则预设类型是后置深度类型。

相机服务在获取到摄像头类型后,则判断该摄像头类型是否为预设类型。若相机服务获取的摄像头类型为预设类型,则表明预览摄像头的传感器模组模拟的信号与手机100中NFC芯片产生的射频场存在耦合。该情况下,相机服务才向NFC服务发送关闭NFC功能的消息。

以预设类型是HWA_PHYSICAL_CAMERA_WIDE为例,若相机服务获取的摄像头类型为HWA_PHYSICAL_CAMERA_WIDE,则相机服务向NFC服务发送关闭NFC功能的消息。

应注意,在多镜录像的场景中,同一时刻至少有两个摄像头在采集预览图像,则摄像头类型可能有多种。相应的,从更新的预览帧数据中获取的摄像头类型可能为多种。针对这种情况,若该多种摄像头类型中包括预设类型,相机服务则向NFC服务发送关闭NFC功能的消息。如此,可以严格避免冲突。

进一步的,相机硬件抽象层上报的类型值可能是HWA_PHYSICAL_CAMERA_NONE,即未知类型,则相机服务获取的类型值也可能是HWA_PHYSICAL_CAMERA_NONE。在一些实施例中,相机服务响应于获取到的摄像头类型为未知类型,不对NFC服务发送关闭NFC功能或者开启NFC功能的消息。即,针对未知类型的情况,不作处理。从而可以避免错误控制。

进一步的,相机硬件抽象层上报的类型值可能是HWA_PHYSICAL_CAMERA_MAX,即无类型,则相机服务获取的类型值也可能是HWA_PHYSICAL_CAMERA_MAX。在一些实施例中,相机服务响应于获取到的摄像头类型为无类型,不对NFC服务发送关闭NFC功能或者开启NFC功能的消息。即,针对无类型的情况,不作处理。从而可以避免错误控制。

S609、NFC服务响应于接收到关闭NFC功能的消息,控制NFC芯片进入空闲状态。

关于S609,可参见前文S303的说明。

除此之外,相机服务获取的摄像头类型可能是除预设类型和未知类型之外的其他类型。在一些实施例中,针对其他类型的情况,在S607之后,还包括:

S610、相机服务响应于获取的摄像头类型为其他类型,向NFC服务发送开启NFC功能的消息。

其中,其他类型的摄像头也可以被称为第一摄像头,开启NFC功能的消息也可以被称为第一消息。

其中,其他类型是指除预设类型之外的类型。在一些实施例中,摄像头类型还包括未知类型,则其他类型是指除预设类型和未知类型之外的类型。在一些实施例中,摄像头类型还包括无类型,则其他类型是指除预设类型和无类型之外的类型。在一些实施例中,摄像头类型包括未知类型和无类型,则其他类型是指除预设类型、未知类型和无类型之外的类型。下文实施例中,主要以其他类型是指除预设类型之外的类型来说明。另外,为方便说明,其他类型的摄像头也可以被称为第一摄像头。

以预设类型是HWA_PHYSICAL_CAMERA_WIDE为例,若相机服务获取的类型值是HWA_PHYSICAL_CAMERA_TOF,即不是预设类型,相机服务则向NFC服务发送开启NFC功能的消息。

S611、NFC服务响应于接收到开启NFC功能的消息,控制NFC芯片退出空闲状态。

关于S611,可参见前文S306的说明。

在一次打开相机到关闭相机的过程中,用户可能会通过变焦调节等操作而触发应用程序向底层请求切换摄像头。应注意,变焦调节通常只在后置摄像头之间切换,从而不会触发打开相机。在底层切换摄像头后,则预览摄像头会发生变化,从而上报给相机服务的类型值也会随之改变。在一种具体的实现方式中,将S608-S611结合,而后用于上述切换摄像头的场景中,相机服务可以随摄像头类型的改变,向NFC服务发送不同类型的控制消息,以灵活控制NFC功能的开启和关闭。从而可以进一步增加NFC功能和相机功能共用的可能性。

仍以预设类型是HWA_PHYSICAL_CAMERA_WIDE为例,在录制视频的t1时刻,用户通过变焦调节使得底层将预览摄像头由后置广角摄像头切换为后置长焦摄像头,则在t1时刻前的预览帧数据中,相机服务可获取到类型值为HWA_PHYSICAL_CAMERA_WIDE,即为预设类型,此时则向NFC服务发送关闭NFC功能的消息。在t1时刻后的预览帧数据中,相机服务可获取到类型值为HWA_PHYSICAL_CAMERA_TELE,即既不是预设类型,也不是未知类型,此时则向NFC服务发送开启NFC功能的消息。也就是说,在一次录制视频的过程中,NFC功能可以在一段时间内关闭,而在另一段时间内开启。

综上所述,采用本实施例的方法,相机服务不仅可以解决NFC功能和相机功能的冲突,而且仅在上报的预览帧数据中的摄像头类型为预设类型的情况下,才控制关闭NFC功能。从而可以增加NFC功能和相机功能共用的可能性。

示例性的,参照图6B,在采用本实施例的方法后,在视频通话的场景中,只要视频通话采用的预览摄像头不是预设类型的摄像头,则用户可以在视频通话的过程中通过手机的NFC功能完成地铁刷卡。

在前述图6A所示的实施例中,相机服务可以获取摄像头类型,并根据摄像头类型向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息。应理解,预览摄像头采集预览图像的帧率通常是每秒30帧,每秒60帧等。以每秒60帧为例,则底层每秒钟需要向相机服务上报60次预览帧数据,相机服务则需要从中获取60次摄像头类型并向NFC服务发送相应的消息。也就是说,相机服务和NFC服务之间的通信需要高达每秒几十次甚至更多。同时,相机服务和NFC服务属于两个不同的进程,而不同进程之间通信的功耗较高,可能会导致手机的性能降低。

基于此,本申请实施例提供了另一种NFC功能的控制方法,可以在图6A所示的实施例的基础上,降低手机功耗。

基于前文说明可知,相机服务可在启动(如重启)时向NFC服务发送开启NFC功能的消息;相机服务可在从预览帧数据中获取到摄像头类型为预设类型时,向NFC服务发送关闭NFC功能的消息(如S608);相机服务可在从预览帧数据中获取到摄像头类型为其他类型时,向NFC服务发送开启NFC功能的消息(如S609);相机服务可在接收到关闭摄像头的请求时,向NFC服务发送开启NFC功能的消息(如S405)。

本申请实施例中,相机服务中记录有最近一次成功发送给NFC服务的消息的消息类型。其中,成功发送是指相机服务接收到NFC服务反馈成功接收的通知的情况。消息类型包括类型1和类型2,类型1指示关闭NFC功能的消息,类型2指示开启NFC功能的消息。应理解,消息只有关闭NFC功能的消息和开启NFC功能的消息,即消息和消息类型是一一对应的。因此,记录的最近一次成功发送给NFC服务的消息的消息类型,也即记录的最近一次成功发送给NFC服务的消息。

在一些实施例中,记录的消息类型的初始值为空值,在启动相机服务而后向NFC服务成功发送开启NFC功能的消息后,相机服务则初始化消息类型为类型2。

而后,相机服务向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息之前,先查询记录的消息类型和待发送的消息的消息类型是否相同,若记录的消息类型和待发送的消息的消息类型不同,相机服务则进一步向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息。若记录的消息类型和待发送的消息的消息类型相同,相机服务不向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息。从而,可以避免连续向NFC服务发送相同类型的消息,减少相机服务和NFC服务之间的跨进程通信,降低手机功耗。

如图7A所示,采用上述在消息类型不同时发送消息的方式,S608可以替换为S608a:

S608a、相机服务响应于获取的摄像头类型为预设类型,且查询到记录的消息类型为类型2,相机服务向NFC服务发送关闭NFC功能的消息。

相机服务获取到摄像头类型为预设类型,则待发送的消息为关闭NFC功能的消息。该情况在,若查询到的消息类型为类型2,则表明与待发送的消息的消息类型不同,此时相机服务可向NFC服务发送关闭NFC功能的消息。反之,若查询到的消息类型为类型1,则表明与待发送的消息的消息类型不同,此时相机服务不向NFC服务发送关闭NFC功能的消息。

如图7A所示,采用上述在消息类型不同时发送消息的方式,S610可以替换为S610a:

S610a、相机服务响应于获取的摄像头类型为其他类型,且查询到记录的消息类型为类型1,相机服务向NFC服务发送开启NFC功能的消息。

相机服务获取到摄像头类型为其他类型,则待发送的消息为开启NFC功能的消息。该情况在,若查询到的消息类型为类型1,则表明与待发送的消息的消息类型不同,此时相机服务可向NFC服务发送开启NFC功能的消息。反之,若查询到的消息类型为类型2,则表明与待发送的消息的消息类型不同,此时相机服务不向NFC服务发送开启NFC功能的消息。

也就是说,相机服务向NFC服务发送开启NFC功能的消息,包括:如果相机服务上一次成功向NFC服务发送关闭NFC功能(类型1)的消息,相机服务则向NFC服务发送该开启NFC功能的消息。反之,若相机服务上一次成功向NFC服务发送开启NFC功能(类型2)的消息,相机服务则不向NFC服务发送该开启NFC功能的消息。

相机服务向NFC服务发送关闭NFC功能的消息,包括:如果相机服务上一次成功向NFC服务发送开启NFC功能(类型2)的消息,相机服务向NFC服务发送该关闭NFC功能的消息。反之,若相机服务上一次成功向NFC服务发送关闭NFC功能(类型1)的消息,相机服务则不向NFC服务发送该关闭NFC功能的消息。

示例性的,以预设类型是HWA_PHYSICAL_CAMERA_WIDE(后置广角),且拍摄前的消息类型是类型2为例。

在一种场景中,参照图7B中的(a),整个拍摄过程中采用的都是后置广角摄像头,则整个拍摄过程中待发送的消息均为关闭NFC功能的消息。而采用图7A所示的方案,相机服务可以仅在开始采集预览图像的t0时刻向NFC服务发送关闭NFC功能的消息,而无需每秒发送几十次关闭NFC功能的消息。

在另一种场景中,参照图7B中的(b),整个拍摄过程中在t2时刻切换了一次摄像头,由后置广角摄像头切换为后置长焦摄像头,则在拍摄过程中的t2时刻之前,待发送的消息均为关闭NFC功能的消息;在拍摄过程中的t2时刻及之后,待发送的消息均为开启NFC功能的消息。而采用图7A所示的方案,相机服务可以仅在开始采集预览图像的t1时刻向NFC服务发送关闭NFC功能的消息,在切换摄像头的t2时刻向NFC服务发送开启NFC功能的消息,而其余时刻在无需与NFC服务通信。

由此可见,采用本实施例的方法,可以极大的减少相机服务和NFC服务之间通信的次数,从而降低手机功耗。

前文实施例中,主要以解决冲突的角度说明了相机服务对NFC功能的开启与关闭的控制。而在实际实施时,可能存在如下影响相机服务对NFC功能的开启与关闭的控制的因素。

因素一,不同的手机,对性能的要求不同。例如,有些手机更注重拍摄效果,则通常不会允许预览水波纹的出现。从而需要解决NFC功能和相机功能的冲突。另一些手机更注重NFC功能的可用性,则通常不会允许NFC功能关闭。即不允许关闭NFC功能。从而不需要解决NFC功能和相机功能的冲突。

基于此,在一些实施例中,可在手机100中预先配置预设配置项,如camera_nfc_switch,并在预设配置项的开关打开时,相机服务才处理冲突。例如,当camera_nfc_switch的开关打开时,相机服务才可以向NFC服务发送关闭NFC功能的消息或者开启NFC功能的消息。反之,若预设配置项的开关未打开,相机服务则不处理冲突。如此,相机服务可以有针对性的解决冲突,避免与手机的性能需求相违背。

因素二,不同用户或者同一用户在不同时间,对NFC功能的使用需求是不同的。例如,有些用户上下班出入地铁刷卡,需要用到NFC功能,则期待NFC功能处于可用状态。而另一些用户对NFC功能的需求不高,并且会将NFC功能手动关闭。

基于此,在一些实施例中,相机服务在向NFC服务发送开启NFC功能的消息后,NFC服务可以查询用户配置,若用户配置中NFC功能的开关被关闭,NFC服务则不会控制NFC芯片退出IDLE状态;若用户配置中NFC功能的开关未被关闭,NFC服务则控制NFC芯片退出IDLE状态,从而开启NFC功能。如此,NFC服务可以在用户未手动关闭NFC功能的基础上,控制开启NFC功能,避免与用户的意愿相违背。

实际中,有些手机中,冲突的摄像头的类型是明确的。例如,型号a的手机中,冲突的摄像头的类型是后置广角类型。而另一些手机中,不明确是否存在冲突或者不明确冲突的摄像头的类型。

基于此,本申请实施例还提供了一种NFC功能的控制方法,该方法相较于图4A所示的实施例和图6A所示的实施例,可以兼顾各种手机,提高冲突解决方案的兼容性。

一方面,参照图8A,本实施例提供的NFC功能的控制方法可以适用于不明确冲突的手机。具体的,如图8A所示,S402进一步包括:

S801、相机服务响应于接收到启动摄像头的请求,获取当前手机的设备标识。

其中,设备标识是可以区分手机型号的标识。示例性的,设备标识可以是设备名称,例如,HONOR 50、HONOR magic 3。或者,设备标识可以是设备型号,例如,NTH-AN00。

应理解,相机服务在第一次获取设备标识后,则可记录下设备标识,而无需再次获取。

S802、相机服务判断设备标识是否为预设标识。

其中,预设标识用于指示明确存在冲突的摄像头的类型的手机。与设备标识对应,预设标识可以是预设名称或者预设型号。

示例性的,以预设标识是预设型号为例。市场上的手机中,已知型号a中冲突的摄像头为后置广角摄像头,型号b中冲突的摄像头为后置长焦摄像头,其余手机无法明确存在冲突的摄像头,则预设型号可以是型号a和型号b。

在一些实施例中,手机中预先配置有预设标识表,该预设标识表中记录有明确冲突的摄像头的手机的设备标识。例如,预设标识表如下表2所示:

表2

预设型号
型号a
型号b
……

相机服务将设备标识与预设标识表中的各个标识匹配,若设备标识在预设标识表中,则设备标识为预设标识。反之,若设备标识不在预设标识表中,则设备标识不是预设标识。

S803、相机服务响应于设备标识不是预设标识,向NFC服务发送关闭NFC功能的消息。

若设备标识不是预设标识,则表明不是明确存在冲突的摄像头的手机,为了避免冲突,相机服务可向NFC服务发送关闭NFC功能的消息。如此,对于不明确存在冲突的摄像头的手机,无论是否存在冲突的摄像头或者无论冲突的是哪个摄像头,都可以避免冲突。

应注意,相机服务在接收到启动摄像头的请求后,还需要逐层向底层(如内核层)传输启动摄像头的请求,而后底层(如内核层)启动相应的摄像头并采集预览图像后,再逐层向上上报预览帧数据(可参见图8B中的S601-S606,不同的是,未明确冲突的摄像头的手机中,可以不将摄像头类型添加到预览帧数据中)。该过程(记为过程1)与S801至S803处理冲突的过程互不干扰,是两条完全独立的流程。

也就是说,过程1的执行不依赖于相机服务对设备标识是否为预设标识的判断结果。基于此,在执行过程1直至相机服务接收到来自相机硬件抽象层上报的预览帧数据后,需要进一步判断设备标识是否为预设标识(如下文中的S804),以确定当前手机是否为明确存在冲突的摄像头的手机。从而确定是否需要通过从预览帧数据中获取摄像头类型来解决冲突。

很显然,针对未明确冲突的摄像头的手机,其设备标识不是预设标识,则相机服务在接收到来自相机硬件抽象层上报的预览帧数据后,可以判定设备标识不是预设标识,从而无需执行从预览帧数据中获取摄像头并处理冲突的步骤。即,在接收到来自相机硬件抽象层上报的预览帧数据后,无需进行冲突处理。

另一方面,参照图8B,本实施例提供的NFC功能的控制方法可以适用于明确冲突的手机。具体的,如图8B所示,在S401之后,还包括:

S801、相机服务响应于接收到启动摄像头的请求,获取当前手机的设备标识。

S802、相机服务判断设备标识是否为预设标识。

若设备标识是预设标识,则表明当前手机是明确存在冲突的摄像头的手机,此时则不作任何处理,而是后续在上报预览帧的过程中,通过获取摄像头类型来有针对性的处理冲突。

同样的,相机服务在接收到启动摄像头的请求后,还需要逐层向底层(如内核层)传输启动摄像头的请求,而后底层(如内核层)启动相应的摄像头并采集预览图像后,再逐层向上上报预览帧数据(如S601-S606)。该过程(记为过程1)与S801至S802处理冲突的过程互不干扰,是两条完全独立的流程。

也就是说,过程1的执行不依赖于相机服务对设备标识是否为预设标识的判断结果。基于此,S607进一步包括:

S804、相机服务响应于接收到预览帧数据,判断设备标识是否为预设标识。

在相机服务接收到来自相机硬件抽象层上报的预览帧数据后,进一步判断设备标识是否为预设标识,以确定当前手机是否为明确存在冲突的摄像头的手机。从而确定是否需要通过从预览帧数据中获取摄像头类型来解决冲突。

S805、相机服务响应于设备标识是预设标识,从预览帧数据中获取摄像头类型。

很显然,针对明确冲突的手机,其设备标识是预设标识,则相机服务在接收到来自相机硬件抽象层上报的预览帧数据后,可以判定设备标识是预设标识,从而需要从预览帧数据中获取摄像头类型。而后根据摄像头类型处理冲突,即S608-S611。

本实施例的方法,可以适用于各种手机中,而不同的预设标识的手机中,存在冲突的摄像头也是不同的。基于此,在一些实施例中,可以在手机中设置预设标识和冲突的摄像头的类型值的对应关系表。而后,在S804中,相机服务可以通过表判断设备标识是否为预设标识,并在判定出设备标识为预设标识后,进一步从表中查询到与该设备标识对应的类型值。从而方便相机服务在S805中获取到摄像头类型后,进一步确定摄像头类型是否为预设类型。

示例性的,可以在表2的基础上,添加类型值列,得到如下表3所示的对应关系表:

表3

预设型号 类型值
型号a HWA_PHYSICAL_CAMERA_WIDE
型号b HWA_PHYSICAL_CAMERA_TELE
…… ……

例如,相机服务在查询到当前手机的设备型号为表3中的型号a后,则可判断出设备标识为预设标识。此时,相机服务可进一步获取当前手机冲突的摄像头的类型值为HWA_PHYSICAL_CAMERA_WIDE,即后置广角类型。

综上所述,采用本实施例的方法,相机服务在接收到启动摄像头的请求后,可以第一次判断当前手机的设备标识是否为预设标识,若第一次判定出是预设标识,则此时不作任何冲突处理;若第一次判定出不是预设标识,则向NFC服务发送关闭NFC功能的消息,从而完成冲突处理。也就是说,针对未明确冲突的手机,相机服务在第一次判断后即可完成冲突处理。以及,在相机服务接收到预览帧数据后,可以第二次判断当前手机的设备标识是否为预设标识,若第二次判定出是预设标识,则通过从预览帧数据中获取摄像头类型并根据摄像头类型来处理冲突;若第二次判定出不是预设标识,则不做任何处理。也就是说,针对明确冲突的手机,相机服务在第一次判断后即可完成冲突处理。如此,针对任一手机,采用本实施例的方法,均可以完成冲突处理。

至此,为方便对前文中各个实施例的理解,下面以一个完整的流程示例来说明本申请方案及其效果。图9为本申请一个具体示例中的NFC功能的控制方法的流程图。

参照图9,本申请实施例提供的NFC功能的控制方法可以包括:

S901、启动相机服务:在手机开机时,会启动相机服务,或者,在相机服务启动后,会自动重启相机服务。本申请实施例中,在启动相机服务后,相机服务可向NFC服务发送开启NFC功能的消息,以开启NFC功能。从而可以避免因相机服务异常中断而导致NFC功能关闭后未及时开启的问题出现。保证相机服务启动后,NFC功能初始是可用的。其中,启动相机服务后则可生成开启NFC功能的消息,而后进入S910。

S902、打开相机:其中,打开相机应用、进入三方应用中使用摄像头的功能、切换拍摄模式或者切换预设摄像头都会触发打开相机。

S903、连接相机,也可以理解为请求启动摄像头:应用程序在接收到用户打开相机的操作后,则可以向相机服务请求启动摄像头。

S904、是否为预设标识:相机服务在接收到连接摄像头的请求后,则判断当前手机的设备标识是否为预设标识,即确定当前手机是否明确存在冲突的摄像头。若是预设标识,则表明当前手机为明确存在冲突的摄像头的手机,此时则不做任何处理,而是等待后续上报预览帧数据后,通过获取摄像头类型来处理冲突。反之,若不是预设标识,则表明当前手机尚不明确存在冲突的摄像头,此时则生成关闭NFC功能的消息,而后进入S910。

应理解,针对任何手机,在S903之后,相机服务会向底层传输启动摄像头的请求,并在底层启动相应的摄像头后,底层可向相机硬件抽象层上报预览帧数据(该过程图9中未示出)。

S905、上报预览帧:相机硬件抽象层在接收到底层上报的预览帧数据后,将摄像头类型添加到预览帧数据中,而后进一步向相机服务上报该预览帧数据。

S906、是否为预设标识:由于启动摄像头并上报预览帧数据的流程,与S904的步骤及其后续的冲突处理是完全独立的,则相机服务在接收到预览帧数据后,需要进一步判断当前手机的设备标识是否为预设标识,从而确定当前手机是否为明确冲突的摄像头的手机。同理,若是预设标识,则表明当前手机为明确存在冲突的摄像头的手机,此时则进入S907,以获取摄像头类型并处理冲突。反之,若不是预设标识,则表明当前手机尚不明确存在冲突的摄像头,针对这种情况,在S904判断出不是预设标识后,就已经进行冲突处理了,此处则无需再做任何处理。

应理解,针对同一款手机,S904和S906中的判断结果应该是一致的。针对明确冲突的摄像头的手机,则S904和S906的判断结果均为是预设标识,则在S904后无需处理冲突,而在S906后需要处理冲突。针对不明确冲突的摄像头的手机,则S904和S906的判断结果均为不是预设标识,则在S904后需要处理冲突,而在S906后无需处理冲突。

并且,针对任何手机,相机服务在接收到预览帧数据后,还需要进一步向应用程序上报预览帧数据,以便应用程序层呈现预览图像(图9中未示出)。

S907、获取摄像头类型:若摄像头类型是未知类型,或者meta数据中不包括摄像头类型,则不做处理,避免误处理。若摄像头类型是预设类型,则表明当前使用的摄像头是当前手机中存在冲突的摄像头,此时相机服务可生成关闭NFC功能的消息,而后进入S910。若摄像头类型是除未知类型、预设类型之外的其他类型,则表明当前使用的摄像头不是当前手机中存在冲突的摄像头,此时相机服务可生成开启NFC功能的消息,而后进入S910。

在本申请实施例中,先通过S907判断是否为预设标识,在判定为预设标识的情况下,再通过S907获取摄像头类型。也就是说,对于设备标识不是预设标识的手机,则无需执行S907获取摄像头类型的步骤。而从预览帧数据中获取摄像头类型,相机服务需要对预览帧数据进行解析,而后从解析结果中得到摄像头类型,该解析并得到摄像头类型的过程耗时长。因此,针对设备标识不是预设标识的手机,可以省去S908,从而可以极大的提升方案执行的效率。

S908、关闭相机:其中,退出前台运行相机应用、退出前台运行三方应用中使用摄像头的功能、切换拍摄模式或者切换预设摄像头都会触发关闭相机。

S909、断开连接,也可以理解为请求关闭摄像头:应用程序在接收到用户关闭相机的操作后,则可以向相机服务请求关闭摄像头。此时,相机服务可生成开启NFC功能的消息,而后进入S910。

S910、和记录的消息类型是否相同:在相机服务生成关闭NFC功能的消息后,如S904不是预设标识(即“否”)的情况、S907获取的摄像头为预设类型的情况;或者,在相机服务生成开启NFC功能的消息后,如S901启动相机服务的情况、S907获取的摄像头类型是其他类型的情况、S909请求关闭摄像头的情况,相机服务可以检测此次生成的消息(即待发送的消息)的消息类型是否和记录的消息类型相同。其中,记录的消息类型是相机服务最近一次成功发送给NFC服务的消息的消息类型。

若此次生成的消息的消息类型和记录的消息类型相同,则无需重复向NFC服务发送,可以丢弃该条消息,即不处理。从而可以减少相机服务和NFC之间的重复通信,降低手机功耗。

若此次生成的消息的消息类型和记录的消息类型不相同,则进入S911,以继续确定是否发送此次生成的消息。

S911、预设配置项是否开启:手机中配置有预设配置项,预设配置项开启,则该手机有处理冲突的需求。预设配置项未开启,则该手机不具有处理冲突的需求。相机服务检测预设配置项(如camera_nfc_switch)的值是否为true,若预设配置项的值为true,则检测到预设配置项开启。从而表明该手机需要处理冲突,则进一步向NFC服务发送消息,即进入S912,以发送消息。反之,若预设配置项的值不是true,则检测到预设配置项未开启。从而表明该手机不需要处理冲突,则丢弃该条消息,即不处理。采用S911,可以使冲突处理与手机的性能需求相匹配。

本申请实施例中,先通过S910判断消息类型是否相同,并在消息类型不同的情况下,进一步通过S911来检测预设配置项是否开启。而在一次拍摄过程中,用户切换摄像头的频率并不会很高,甚至不会切换。也就是说,绝大多数情况下,S910得到的判断结果均是消息类型相同,此时则无需执行S911。因此,采用先S910在S911的方式,绝大多数情况下,可以省去S911,从而可以提升方案执行的效率。

S912、给NFC服务发消息:相机服务将此次生成的消息发送给NFC服务。

S913、控制NFC芯片进入或退出空闲状态:NFC服务在接收到关闭NFC服务的消息后,则控制NFC芯片进入空闲状态,此时NFC功能关闭。NFC服务在接收到开启NFC服务的消息,则控制NFC退出空闲状态,此时NFC功能开启。

由此可见,上述图9所示的完整示例,通过维护预设标识、预设类型和预设配置项,则可以灵活适用于所有手机。例如,可以适用于明确冲突的摄像头的手机,也可以适用于不明确冲突的摄像头的手机。又如,可以适用于冲突的摄像头类型不同的手机。再如,可以适用于需要处理冲突(即预设配置项开启)的手机,也可以适用于无需处理冲突(即预设配置项未开启)的手机。

示例性的,在开发出新手机产品后,通过测试明确该新手机的摄像头1的传感器模组模拟的信号与NFC芯片产生的射频场存在耦合,则可以新增该新手机的设备标识为预设标识,将该摄像头1的类型确定为预设类型,并为该新手机添加预设配置项的值为true。而后,该方案则可以针对该手机,仅在使用摄像头1时关闭NFC功能。

因为手机100中可以包括如上图3中所示的软件结构,所以手机100可以执行本申请实施例的NFC功能的控制方法。下文实施例中,以执行主体是手机100来说明本申请实施例共的NFC功能的控制方法。

参照图10,本申请实施例提供的一种NFC方法可以包括:

S1001、手机100接收用户打开相机的操作。

在用户输入打开相机的操作后,例如,用户点击主界面上相机应用的应用图标之后,第一方面(即S1002),手机100需要确定该手机100是否为明确冲突的摄像头的手机,若是,则此时无需进行任何处理;若否,则此时需要关闭NFC功能。第二方面(即S1003),手机100需要启动预览摄像头以采集预览图像并显示。上述两个方面是完全独立的,两者互不影响。

S1002、手机100响应于用户打开相机的操作,判断手机100的设备标识是否为预设标识。若是,则不处理;若否,执行S1007。

其中,若手机100的设备标识是预设标识,则表明该手机100是明确冲突的摄像头的手机,此时则无需进行任何处理。而是后续通过获取摄像头类型来进行冲突处理。反之,若手机100的设备标识不是预设标识,则表明该手机100不是明确冲突的摄像头的手机,则为了尽可能避免出现冲突,此时即需关闭NFC功能。也就是说,如果手机100的设备标识不是预设标识,在手机100启动任一摄像头都要关闭NFC功能。

S1003、手机100响应于用户打开相机的操作,启动预览摄像头。

应注意,在打开相机后,预览摄像头是可以切换的。例如,在手机100响应于用户点击相机应用的应用图标后,手机100启动后置主摄像头。而后,用户将预览界面上的变焦条从1x滑动到4x,从1x切换到4x是后置摄像头之间的切换,通常不会重新触发手机100打开相机。但是会触发手机100切换摄像头。S1003中的启动预览摄像头是指打开相机后首次启动摄像头,而不包括后续切换摄像头时的启动。

S1004、在手机100启动预览摄像头后,获取预览帧数据。

本申请实施例中,预览帧数据中携带有预览摄像头的摄像头类型。其中,在切换摄像头后,则预览摄像头是切换后的摄像头。

应注意,随着摄像头不断的采集预览图像,手机100会不断获取到预览帧数据,因此S1004及其后续步骤都是随着摄像头采集预览图像的进行而一直持续的。

S1005、手机100判断设备标识是否为预设标识。若是,则执行S1005;若否,则不处理。

由于S1003、S1004与S1002是完全独立的,即S1003和S1004的执行并不依赖于S1002的判断结果。因此,在S1004之后,手机100需要再次判断设备标识是否为预设标识(即S1004),以便有针对性的进行冲突处理。

其中,若手机100的设备标识是预设标识,则表明该手机100是明确冲突的摄像头的手机,此时则执行S1006,以通过获取摄像头类型来进行冲突处理。反之,若手机100的设备标识不是预设标识,则表明该手机100不是明确冲突的摄像头的手机,该手机100的冲突已经解决,此时则无需再做任何处理。

S1006、手机100从预览帧数据中获取预览摄像头的摄像头类型,判断摄像头类型是否为预设类型。若是,则执行S1007;若否,则执行S1008。

其中,预设类型是手机100中存在冲突的摄像头的类型。若预览帧数据中携带的摄像头类型是预设类型,则表明当前采用的预览摄像头是冲突的摄像头,此时则执行S1007,以关闭NFC功能。反之,若预览帧数据中携带的摄像头类型不是预设类型,则表明当前采用的预览摄像头不是冲突的摄像头,此时则可以执行S1008,以开启NFC功能。应注意,摄像头不是预设类型,包括:摄像头类型是未知类型,或者摄像头是其他类型。在一些实施例中,在摄像头类型不是预设类型的情况下,手机100可以进一步判断摄像头类型是否是未知类型,若摄像头类型是未知类型,则手机100可以不作处理,避免造成错误。若摄像头类型不是未知类型,即为其他类型,则手机100可以执行S1008,以开启NFC功能。

S1007、手机100关闭NFC功能。

在一些实施例中,在S1007之前,手机100还需检测NFC功能是否已关闭。其中,若最近一次向NFC服务成功发送的消息是关闭NFC功能的消息,则表明NFC功能已关闭;若最近一次向NFC服务成功发送的消息是开启NFC功能的消息,则表明NFC功能未关闭。S1007进一步包括:若NFC功能未关闭,手机100则关闭NFC功能。另外,若NFC功能已关闭,手机100则不作任何处理,从而避免重复关闭NFC功能。

在一些实施例中,手机100中包括预设配置项。在S1007之前,手机100还需检测预设配置项是否开启。S1007进一步包括:若预设配置项处于开启状态,手机100则关闭NFC功能。另外,若预设配置项处于关闭状态,手机100则不作任何处理,即NFC功能的状态保持不变。

S1008、手机100开启NFC功能。

在一些实施例中,在S1008之前,手机100还需检测NFC功能是否已开启。其中,若最近一次向NFC服务成功发送的消息是开启NFC功能的消息,则表明NFC功能已开启;若最近一次向NFC服务成功发送的消息是关闭NFC功能的消息,则表明NFC功能未开启。S1008进一步包括:若NFC功能未开启,手机100则开启NFC功能。另外,若NFC功能已开启,手机100则不作任何处理,从而避免重复开启NFC功能。

在一些实施例中,手机100中包括预设配置项。在S1008之前,手机100还需检测预设配置项是否开启。S1008进一步包括:若预设配置项处于开启状态,手机100则开启NFC功能。另外,若预设配置项处于关闭状态,手机100则不作任何处理,即保持NFC功能的状态不变。

在一些实施例中,在S1008之前,手机100还需检测用户配置是否包括关闭NFC功能的设置。S1008进一步包括:若用户配置中不包括关闭NFC功能的设置,手机100则开启NFC功能。另外,若用户配置中包括关闭NFC功能的设置,手机100则不作任何处理。也就是说,如果手机100的NFC功能未响应于用户的操作处于关闭状态,即用户未手动关闭NFC功能,手机100则开启NFC功能。如果手机100的NFC功能响应于用户的操作处于关闭状态,即用户手动关闭NFC功能,手机100则保持NFC功能关闭,而不会开启NFC功能。

基于前述S1006-S1008的说明可知:在手机100启动非预设类型(如其他类型)的摄像头的情况下,手机100的NFC功能开启。在手机100启动预设类型的摄像头的情况下,NFC功能关闭。

并且,在一次打开相机到关闭相机的过程中,非预设类型的摄像头和预设类型的摄像头之间可以通过用户的操作而互相切换。例如,手机100在启动第一摄像头后,可接收用户的第二操作。其中,第二操作用于触发手机100将摄像头切换为第二摄像头。手机100响应于用户的第二操作,可关闭第一摄像头,启动第二摄像头。又如,手机100在启动第二摄像头后,可接收用户的第三操作。其中,第三操作用于触发手机100将摄像头切换为第一摄像头。手机100响应于用户的第三操作,可关闭第二摄像头,启动第一摄像头。采用本申请方案,在一次打开相机到关闭相机的过程中切换摄像头的场景中,可以在一段时间内开启NFC服务,在另一段时间内关闭NFC服务,从而可以进一步增加NFC功能和相机功能共用的可能性。

S1009、手机100响应于用户关闭相机的操作,开启NFC功能。

其中,S1009中开启NFC功能的具体实现,与S1008中开启NFC功能的具体实现相同。

应理解,图10中手机100通过两次判断将设备标识是预设标识和不是预设标识的两种情况结合在一个方案中来说明。而实际中,不同手机可直接采用不同的方式来处理冲突,若手机100的设备标识是预设标识,则手机100可以直接采用S1001、S1008和S1009的方式来处理冲突。或者,若手机100的设备标识是预设标识,则手机100可以直接采用S1001、S1003-S1009的方式来处理冲突。

综上所述,采用本申请实施例的方法,手机100可以有效的处理NFC功能和相机功能冲突的问题。

本申请另一些实施例提供了一种电子设备,该电子设备可以包括:上述显示屏(如触摸屏)、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。该电子设备的结构可以参考图2所示的手机100的结构。

本申请实施例还提供一种芯片系统,如图11所示,该芯片系统1100包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1102可用于向其它装置(例如处理器1101)发送信号。示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当所述指令被处理器1101执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。

本申请实施例还提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。

本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机执行的各个功能或者步骤。

通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

49页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种终端控制方法、终端、装置及其存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类