CN116033342A - 地理围栏的处理方法、设备及存储介质 - Google Patents

地理围栏的处理方法、设备及存储介质 Download PDF

Info

Publication number
CN116033342A
CN116033342A CN202210599675.7A CN202210599675A CN116033342A CN 116033342 A CN116033342 A CN 116033342A CN 202210599675 A CN202210599675 A CN 202210599675A CN 116033342 A CN116033342 A CN 116033342A
Authority
CN
China
Prior art keywords
geofence
configuration information
information
application
wifi
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.)
Granted
Application number
CN202210599675.7A
Other languages
English (en)
Other versions
CN116033342B (zh
Inventor
董浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210599675.7A priority Critical patent/CN116033342B/zh
Publication of CN116033342A publication Critical patent/CN116033342A/zh
Application granted granted Critical
Publication of CN116033342B publication Critical patent/CN116033342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Telephone Function (AREA)

Abstract

本申请提供了一种地理围栏的处理方法、设备及存储介质。适用于需要通过内核与硬件层的低功耗微处理器进行通讯的芯片平台,由低功耗微处理器根据共享内存中记录的地理围栏配置信息,确定获取到的位置信息是否位于地理围栏配置信息对应的地理围栏,这样即便应用处理器处于休眠模式,也能及时感知到地理围栏事件,从而提高了地理围栏能力的连续性,并且由于使用的是低功耗微处理器,因此地理围栏的处理业务所需的功耗也大大降低。在位置信息位于地理围栏配置信息对应的地理围栏时,由应用处理器确定地理围栏对应的应用场景,并激活应用场景对应的业务操作,这样无需用户介入,就可以完成业务操作,大大提升了用户体验。

Description

地理围栏的处理方法、设备及存储介质
技术领域
本申请涉及电子信息技术领域,尤其涉及一种地理围栏的处理方法、设备及存储介质。
背景技术
地理围栏(Geo-fencing)是基于位置的服务(Location Based Services,LBS)的一种应用,即用一个虚拟的栅栏围出一个虚拟地理边界。当电子设备进入、离开某个特定地理区域或在该地理区域内活动时,电子设备可以接收自动通知和警告。基于地理围栏的这一特性,各大应用厂商相继推出了基于位置的应用,如乘车码应用、近场通信(Near FieldCommunication,NFC)应用等,同时还推出了智能化业务,如基于地理围栏实现对 NFC应用中添加的各种门禁、钥匙、交通卡的智能切换。
但是,目前部分芯片平台支持的地理围栏功能仅支持全球定位***(GlobalPositioning System,GPS)地理围栏,这就导致在卫星信号弱,比如室内、地下车库等地方,无法精准识别地理围栏,甚至地理围栏业务根本无法使用。
此外,目前地理围栏的处理通常是由电子设备内的应用处理器(ApplicationProcessor,AP)实现的,因此在AP处于休眠场景下,电子设备就不具备地理围栏感知能力,这就导致电子设备进入、离开某个特定地理区域或在该地理区域内活动时,无法接收到与地理围栏业务相关的通知。
发明内容
为了解决上述技术问题,本申请提供一种地理围栏的处理方法、设备及存储介质,旨在为需要通过内核与硬件层的低功耗微处理器进行通讯的芯片平台,提供连续性高、低功耗的地理围栏能力。
第一方面,本申请提供一种地理围栏的处理方法,应用于电子设备,电子设备包括低功耗微处理器、应用处理器和位置信息获取模块。方法包括:在位置信息获取模块获取到电子设备的第一位置信息时,低功耗微处理器根据共享内存中记录的地理围栏配置信息,确定第一位置信息是否位于地理围栏配置信息对应的地理围栏;在第一位置信息位于地理围栏配置信息对应的地理围栏时,应用处理器确定地理围栏对应的应用场景,并激活应用场景对应的业务操作。
由此,通过采用一直在线运行的低功耗微处理器来感知地理围栏事件,即便应用处理器处于休眠模式,也能及时感知到地理围栏事件,从而提高了地理围栏能力的连续性,并且由于使用的是低功耗微处理器,因此地理围栏的处理业务所需的功耗也大大降低。
此外,在这种连续性高、低功耗的地理围栏能力基础上,应用处理器根据地理围栏对应的应用场景自动激活应用场景的业务操作,无需用户介入,在用户无感知的情况下就可以完成业务操作,大大提升了用户体验。
根据第一方面,在第一位置信息位于地理围栏配置信息对应的地理围栏时,方法还包括:低功耗微处理器生成指示电子设备进入地理围栏的地理围栏状态变化信息;低功耗微处理器向共享内存中写入指示电子设备进入地理围栏的地理围栏状态变化信息。这样,通过将指示电子设备进入地理围栏的地理围栏状态变化信息写入共享内存,从而可以方便应用处理器获知地理围栏事件。
根据第一方面,或者以上第一方面的任意一种实现方式,在第一位置信息位于地理围栏配置信息对应的地理围栏时,应用处理器确定地理围栏对应的应用场景,并激活应用场景对应的业务操作,包括:在第一位置信息位于地理围栏配置信息对应的地理围栏时,应用处理器从共享内存中获取地理围栏状态变化信息,地理围栏状态变化信息指示电子设备进入地理围栏;应用处理器确定地理围栏对应的应用场景;应用处理器根据地理围栏状态变化信息,激活应用场景对应的业务操作。这样,根据地理围栏状态变化信息,就可以实现对应用场景对应的业务操作的自动控制,例如根据指示电子设备进入地理围栏的地理围栏状态变化信息,实现激活应用场景对应的业务操作。
根据第一方面,或者以上第一方面的任意一种实现方式,在应用处理器根据地理围栏状态变化信息,激活应用场景对应的业务操作之后,方法还包括:在位置信息获取模块获取到电子设备的第二位置信息时,低功耗微处理器根据共享内存中记录的地理围栏配置信息,确定第二位置信息是否位于地理围栏配置信息对应的地理围栏;在第二位置信息离开地理围栏配置信息对应的地理围栏时,应用处理器退出应用场景对应的业务操作。这样,在电子设备离开匹配的地理围栏后,就可以自动退出已激活的业务操作,避免对资源的长期占用。
根据第一方面,或者以上第一方面的任意一种实现方式,在第二位置信息离开地理围栏配置信息对应的地理围栏时,方法还包括:低功耗微处理器生成指示电子设备离开地理围栏的地理围栏状态变化信息;低功耗微处理器向共享内存中写入指示电子设备进入地理围栏的地理围栏状态变化信息。这样,通过将指示电子设备离开地理围栏的地理围栏状态变化信息写入共享内存,从而可以方便应用处理器获知地理围栏事件。
根据第一方面,或者以上第一方面的任意一种实现方式,在第二位置信息离开地理围栏配置信息对应的地理围栏时,应用处理器退出应用场景对应的业务操作,包括:在第二位置信息离开地理围栏配置信息对应的地理围栏时,应用处理器从共享内存中获取地理围栏状态变化信息,地理围栏状态变化信息指示电子设备离开地理围栏;应用处理器根据地理围栏状态变化信息,退出应用场景对应的业务操作。这样,根据地理围栏状态变化信息,就可以实现对应用场景对应的业务操作的自动控制,例如根据指示电子设备离开地理围栏的地理围栏状态变化信息,实现退出应用场景对应的业务操作。
根据第一方面,或者以上第一方面的任意一种实现方式,在位置信息获取模块获取到电子设备的第一位置信息时,低功耗微处理器根据共享内存中记录的地理围栏配置信息,确定第一位置信息是否位于地理围栏配置信息对应的地理围栏之前,方法还包括:响应于接收到的地理围栏添加指令,根据位置信息获取模块获取到的位置信息生成地理围栏配置信息;应用处理器将地理围栏配置信息添加到共享内存。这样,通过设置共享内存,从而实现了应用处理器和低功耗微处理器在地理围栏的处理业务中的协同作业。
根据第一方面,或者以上第一方面的任意一种实现方式,在应用处理器将地理围栏配置信息添加到共享内存之后,方法还包括:应用处理器向低功耗微处理器发送第一通知信息,以告知低功耗微处理器地理围栏配置信息已添加到共享内存,第一通知消息包括地理围栏配置信息对应的地理围栏类型的标识号和地理围栏配置信息在共享内存中的地址信息。这样,通过向低功耗微处理器发送包括地理围栏配置信息对应的地理围栏类型的标识号和地理围栏配置信息在共享内存中的地址信息的第一通知信息,从而可以使得低功耗微处理器能够根据第一通知信息携带的上述参数,从共享内存中精准的查找到对应的地理围栏配置信息。
根据第一方面,或者以上第一方面的任意一种实现方式,在应用处理器向低功耗微处理器发送通知信息之后,方法还包括:低功耗微处理器接收到第一通知信息后,根据标识号和地址信息,从共享内存中获取对应的地理围栏配置信息;低功耗微处理器为地理围栏配置信息分配地理围栏标识号;低功耗微处理器将地理围栏标识号发送给应用处理器;低功耗微处理器按照设定周期循环调用地理围栏匹配函数,执行获取电子设备的位置信息的步骤。通过为每一个地理围栏配置信息分配能够标识其唯一性的地理围栏标识,从而便于后续生成的地理围栏状态变化信息能够明确的指示是针对哪一地理围栏配置信息。此外,低功耗微处理器按照设定周期循环调用地理围栏匹配函数,执行获取电子设备的位置信息的步骤,从而降低了地理围栏业务的功耗,并且采用这种方式即便应用处理器处于休眠状态,一直在线运行的低功耗微处理器也可以及时获取电子设备的位置信息,进而感知地理围栏事件是否发生变化。
根据第一方面,或者以上第一方面的任意一种实现方式,在低功耗微处理器将地理围栏标识号发送给应用处理器之后,方法还包括:低功耗微处理器通过轮询线程接收到地理围栏标识号后,基于netlink机制将地理围栏标识号上报至生成地理围栏添加指令的应用。
根据第一方面,或者以上第一方面的任意一种实现方式,位置信息获取模块包括以下任意一项或任意多项:用于获取电子设备当前所处位置的坐标信息的GPS模块、用于获取电子设备当前扫描到的WIFI的MAC地址和信号强度的WIFI模块、用于获取电子设备扫描到的小区的小区基站标识号的Modem模块。这样,就可以根据用户需求,采用不同的位置信息获取模块获取不同的位置信息,进而既能满足用户对精确度的要求,又能兼顾地理围栏业务的连续性和功耗。
根据第一方面,或者以上第一方面的任意一种实现方式,地理围栏配置信息包括以下任意一项或任意多项:GPS地理围栏配置信息、WIFI地理围栏配置信息、Cell地理围栏配置信息。这样,就可以根据用户需求,选择不同地理围栏维度的地理围栏配置信息确定电子设备当前所在的位置,从而可以更加精准的定位用户当前所在位置的地理围栏,保证后续激活或退出业务的准确性。
第二方面,本申请提供了一种电子设备。该电子设备包括:存储器和处理器,存储器和处理器耦合;存储器存储有程序指令,程序指令由处理器执行时,使得所述电子设备执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第三方面,本申请提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第四方面,本申请提供了一种计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第五方面,本申请提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚、和该处理电路通过内部连接通路互相通信,该处理电路执行第一方面或第一方面的任一种可能的实现方式中的方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
附图说明
图1为示例性示出的一种开启定位服务的页面示意图之一;
图2为示例性示出的一种开启定位服务的页面示意图之二;
图3为示例性示出的一种开启定位服务的页面示意图之三;
图4为示例性示出的一种基于地理围栏实现智能推荐的示意图;
图5为示例性示出的一种电子设备的硬件结构示意图;
图6为示例性示出的一种电子设备的软件结构示意图;
图7为示例性示出的一种基于图6所示的软件层与硬件层的交互示意图之一;
图8为示例性示出的一种基于图6所示的软件层与硬件层的交互示意图之二;
图9为示例性示出的一种地理围栏的处理方法适用于不同平台的示意图;
图10为示例性示出的一种地理围栏的处理方法的示意图;
图11为示例性示出的一种地理围栏的处理方法的场景示意图之一;
图12为示例性示出的一种地理围栏的处理方法的场景示意图之二;
图13为示例性示出的一种基于三种地理围栏确定用户所在位置的地理围栏的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个***是指两个或两个以上的***。
为了更好的理解本申请实施例提供的技术方案,在对本申请实施例的技术方案说明之前,首先结合附图对本申请实施例的应用场景进行说明。
需要说明的是,想要基于地理围栏实现相关业务,例如NFC智闪卡中添加的门禁、乘车卡的智能切换,需要先开启定位服务。关于定位服务的开启,在一些实现方式中可以通过设置页面中提供的开启定位服务的入口开启,在另一些实现方式中也可以通过通知栏中提供的开启定位服务的入口开启。为了便于描述,本申请实施例以通过通知栏中提供的开启定位服务的入口为例,结合图1至图3对开启定位服务的过程进行说明。
参见图1,示例性的,在手机当前显示的页面10a(实际应用中可以是在任何页面)时,当用户从手机的上边缘沿着箭头方向向下滑动时,手机响应于用户的操作行为,页面10a切换到面10b。
继续参见图1,示例性的,在页面10b中包括一个或多个控件,例如用于切换到通知消息页面的通知选项、用于切换到各种功能开关的页面的开关选项。
继续参见图1,示例性的,当用户从手机的上边缘沿着箭头方向向下滑动时,手机响应于用户的操作行为,页面10a切换到页面10b后,默认选中通知选项,在默认选中通知选项的页面中,会显示时间、当前未读的消息等。
继续参见图1,示例性的,当用户点击了页面10a中的开关选项后,手机响应于用户的操作行为,从页面10b切换到图2所示的页面10c。
参见图2,示例性的,页面10c中包括一个或多个控件,例如亮度设置选项、Wi-Fi设置选项、蓝牙设置选项、移动数据设置选项、***设置选项、GPS设置选项和自动旋转设置选项等。
继续参见图2,示例性的,当用户按压GPS设置选项一定时间,例如5s后,手机响应于用户的操作行为,从页面10c切换到用于开启定位服务的页面10d。
继续参见图2,示例性的,页面10d可包括一个或多个控件,例如用于退出页面10d的控件10d-1,用于开启定位服务的控件10d-2,用于选择位置信息模式的控件10d-3。
示例性的,在一些实现方式中,默认情况下定位服务可以处于关闭状态,即控件10d-2 处于图2所示的状态。
继续参见图2,示例性的,当用户点击了控件10d-2,手机响应于用户的操作行为,开启定位服务,此时控件10d-2从图2所示的状态变为图3所示的状态。
由此,手机就开启了定位服务,后续基于地理围栏的应用、业务就可以根据手机进入、离开地理围栏时接收到的通知实现智能业务推荐,例如对应NFC智闪卡应用可以根据地理围栏事件,在用户无感知的情况下,自动调整添加的门禁卡、乘车卡的顺序。
进一步地,为了使得地理围栏这一能力能够给用户带来更加人性化的体验,满足不用用户的使用需求,本实施例提供的地理围栏的处理方法中,还为用户提供了设置位置信息模式的入口。
参见图3,示例性的,当用户点击控件10d-3后,手机响应于用户的操作行为,从页面10d切换到用于设置位置信息模式的页面10e。
继续参见图3,示例性的,页面10e可以包括一个或多个控件,例如用于推出页面10e的控件10e-1,用于设置信息位置模式为“准确度高”的控件10e-2,用于设置信息位置模式为“耗电量低”的控件10e-3,用于设置信息位置模式为“仅限设备”的控件10e-4。
其中,“准确度高”的位置信息模式是指同时使用GPS地理围栏(基于手机的经纬度坐标)、WIFI地理围栏(基于手机扫描到的WIFI信号(WLAN))和Cell地理围栏(基于手机扫描到的小区基站(使用移动网络))这三种方式来确定位置;“耗电量低”的位置信息模式是指经使用WIFI地理围栏和Cell地理围栏这三种方式来确定位置;“仅限设备”的位置信息模式是指仅使用GPS地理围栏,即手机自己的经纬度坐标来确定位置。
示例性的,在另一些实现方式中,还可以设置位置信息模式自动切换功能,即由手机根据当前的电量、GPS、WLAN和移动网络的使用情况,在这三种位置信息模式中动态切换,从而更好的提升用户体验。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
示例性的,在通过图1至图3所示的方式开启定位服务后,如果手机中安装的NFC智闪卡应用已经添加了部分门禁和乘车卡,例如图4所示的显示在NFC智闪卡应用某一页面10f中的公交卡、小区A门禁卡和单元楼门禁卡等电子卡。
参见图4,示例性的,页面10f中还可以包括用于退出页面10f的控件10f-1。
示例性的,在一些实现方式中,当用户通过NFC智闪卡应用开启智闪卡功能,即自动切换添加的电子卡,进行激活后,基于本申请实施例提供的地理围栏的处理方法,如果用户走到小区A的门口,无需启动NFC智闪卡应用手动选中小区A门禁卡,直降将手机靠近门禁、闸机、读卡器等设备的刷卡区域,手机就能快速精准的确定用户进入了小区A的地理围栏,进而通知NFC智闪卡应用将电子卡自动切换到小区A门禁卡,从而完成刷卡。
相应地,基于本申请实施例提供的地理围栏的处理方法,如果用户走到自己所在的单元楼门口,无需启动NFC智闪卡应用手动选中单元楼门禁卡,直降将手机靠近门禁、闸机、读卡器等设备的刷卡区域,手机就能快速精准的确定用户进入了单元楼的地理围栏,进而通知NFC智闪卡应用将电子卡自动切换到单元楼门禁卡,从而完成刷卡。
相应地,基于本申请实施例提供的地理围栏的处理方法,如果用户走到了公交站,无需启动NFC智闪卡应用手动选中乘车卡,直降将手机靠近门禁、闸机、读卡器等设备的刷卡区域,手机就能快速精准的确定用户进入了公交站的地理围栏,进而通知NFC智闪卡应用将电子卡自动切换到乘车卡,从而完成刷卡。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,需要说明的是,图1至图4及后续实施例的描述涉及到的附图中所涉及的电子设备的显示界面显示的控件的名称和数量,以及下拉通知栏中的控件的名称和数量仅为示意性举例,本申请对此不做限制。
此外,可理解的是,本申请实施例的描述中,是以手机为例进行说明,在其他实施例中,本申请同样适用于平板电脑、可穿戴设备等提供定位服务的电子设备。
为了更好的描述本申请实施例提供的地理围栏的处理,以下结合附图对本申请实施例适用于的电子设备的硬件结构,以及软件结构进行描述。
图5为示例性示出的一种电子设备的硬件结构示意图。参见图5,电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线 2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
示例性的,在一些实现方式中,传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等,此处不再一一例举,本申请对此不作限制。
此外,需要说明的是,处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/ 或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
可理解的,控制器可以是电子设备100的神经中枢和指挥中心。在实际应用中,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
此外,需要说明的是,具体到本申请实施例提供的技术方案中,为了降低地理围栏业务的功耗,同时解决由AP处于休眠模式时,无法对地理围栏业务进行处理,进而导致地理围栏能力连续性差的问题,本申请实施例适用于的电子设备100的处理110还需要包括低功耗的微处理器,例如智能传感集线器(SensorHub)。
可理解的,SensorHub是一种基于低功耗微控制单元(Microcontroller Unit,MCU) 和轻量级实时操作***(Real-time operating system,RTOS)之上的软硬件结合的解决方案,其主要功能是连接并处理来自各个传感器设备、信号采集设备(如WIFI模块/芯片、 GPS模块/芯片、调制解调处理器(modem)等)的数据。因此,本申请实施例通过引入SensorHub来处理地理围栏信息,从而可以大大降低地理围栏业务的功耗,同时可以在 AP处于休眠模式时,不间断的处理地理围栏信息,以保证地理围栏能力连续性。
此外,还需要说明的是,处理器110中还可以设置存储器,用于存储指令和数据。在一些实现方式中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
示例性的,在一些实现方式中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口 (mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output, GPIO)接口,用户标识模块(subscriber identitymodule,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
继续参见图5,示例性的,充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实现方式中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实现方式中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
继续参见图5,示例性的,电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160 等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实现方式中,电源管理模块141也可以设置于处理器110 中。在另一些实现方式中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
继续参见图5,示例性的,电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
需要说明的是,天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实现方式中,天线可以和调谐开关结合使用。
继续参见图5,示例性的,移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实现方式中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实现方式中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
此外,需要说明的是,调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实现方式中,调制解调处理器可以是独立的器件。在另一些实现方式中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
示例性的,具体到本申请实施例提供的技术方案中,当选择的位置信息模式需要依赖Cell地理围栏这一维度确定位置时,SensorHub可以通过处理调制解调处理器接收到的小区基站信号确定Cell地理围栏事件,如进入某一Cell地理围栏,或者离开某一Cell 地理围栏。
继续参见图5,示例性的,无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,WIFI) 网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellitesystem, GNSS),调频(frequency modulation,FM),近距离无线通信技术(near fieldcommunication, NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160 还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
示例性的,具体到本申请实施例提供的技术方案中,当选择的位置信息模式需要依赖WIFI地理围栏这一维度确定位置时,SensorHub可以通过处理WIFI模块扫描到的WIFI信号确定WIFI地理围栏事件,如进入某一WIFI地理围栏,或者离开某一WIFI地理围栏。
示例性的,具体到本申请实施例提供的技术方案中,当选择的位置信息模式需要依赖GPS地理围栏这一维度确定位置时,SensorHub可以通过处理GPS模块通过GNSS确定的经纬度坐标确定GPS地理围栏事件,如进入某一GPS地理围栏,或者离开某一GPS 地理围栏。
此外,还需要说明的是,电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
继续参见图5,示例性的,显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,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可以包括1个或 N个显示屏194,N为大于1的正整数。
此外,还需要说明的是,电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
此外,还需要说明的是,ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实现方式中,ISP可以设置在摄像头193中。
此外,还需要说明的是,摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。 ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV 等格式的图像信号。在一些实现方式中,电子设备100可以包括1个或N个摄像头193, N为大于1的正整数。
此外,还需要说明的是,数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
此外,还需要说明的是,视频编解码器用于对数字视频压缩或解压缩。电子设备100 可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
继续参见图5,示例性的,外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
继续参见图5,示例性的,内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flashstorage,UFS)等。
此外,还需要说明的是,电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
此外,还需要说明的是,音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实现方式中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
继续参见图5,示例性的,按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
继续参见图5,示例性的,马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
继续参见图5,示例性的,指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
关于电子设备100的硬件结构就介绍到此,应当理解的是,图5所示电子设备100仅是一个范例,在具体实现中,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图5中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
为了更好的理解图5所示电子设备100的软件结构,以及为了实现由SensorHub实现地理围栏的处理,电子设备的软件结构进行的改进,以下对电子设备100的软件结构进行说明。在对电子设备100的软件结构进行说明之前,首先对电子设备100的软件***可以采用的架构进行说明。
具体的,在实际应用中,电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。
此外,可理解的,目前主流的终端设备使用的软件***包括但不限于Windows***、 Android***和iOS***。为了便于说明,本申请实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
此外,后续关于本申请实施例提供的地理围栏的处理方案,在具体实现中同样适用于其他***。
参见图6,图6为本申请实施例的电子设备100的软件结构结合硬件层的框图。
如图6所示,电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实现方式中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库、硬件抽象层,以及内核层。
其中,应用程序层可以包括一系列应用程序包。如图6所示,应用程序包例如可以包括NFC智闪卡、设置、WLAN(WIFI)、相机、地图、音乐等应用程序,此处不再一一列举,本申请对此不作限制。
需要说明的是,本申请实施例在应用程序层仅示出了能够添加各种电子卡的NFC智闪卡应用,如果在实际应用中不同的电子卡有专门的应用,应用程序层也可以包括其他基于地理围栏特性的应用,例如健康码应用、地铁码应用等,此处不再一一列举,本申请对此不作限制。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。
其中,应用程序框架层包括一些预先定义的函数。如图6所示,应用程序框架层可以包括资源管理器、通知管理器、视图***、电话管理器、本实施例实现地理围栏业务所需的位置服务等,此处不再一一列举,本申请对此不作限制。
其中,资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等,此处不再一一列举,本申请对此不作限制。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知当前进入某一地理围栏等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。具体到本申请实施例提供的技术方案中,各种用户界面均是由显示***实现的。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
位置服务,又称定位服务,是由移动通信网络和卫星定位***结合在一起提供的一种增值业务,通过一组定位技术获得电子设备的位置信息(如经纬度坐标数据),提供给移动用户本人或他人以及通信***,实现各种与位置相关的业务。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等,此处不再一一列举,本申请对此不作限制。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG 等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
可理解的,上述所说的2D图形引擎是2D绘图的绘图引擎。
硬件抽象层(HAL层)是位于操作***内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作***提供虚拟硬件平台,使其具有硬件无关性,这样就可以在多种平台上进行移植。从软、硬件测试的角度来看,软、硬件的测试工作都可分别基于硬件抽象层来完成,从此使软、硬件测试工作的并行进行成为可能。
参见图6,示例性的,硬件抽象层例如可以包括NFC抽象层、定位抽象层等。
其中,NFC抽象层为NFC智闪卡应用使用时依赖的NFC芯片/模块对应的硬件抽象层,定位抽象层为实现地理围栏业务时所需的硬件抽象层,在本申请实施例提供的技术方案中,定位抽象层与应用程序框架中位置服务对应。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。在实际应用中,硬件抽象层中还包括其他硬件对应的抽象层。
此外,可理解的,Android***中的内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,以及本申请实施例会用到的NFC驱动、WIFI驱动、GPS驱动等。
此外,需要说明的是,为了实现本申请实施例提供的技术方案,即将AP对硬件层中Modem、WIFI、GPS等扫描到的信号的处理过程(确定对应地理围栏的过程)交由低功耗、电子设备启动后就一直在线的SensorHub完成,内核层还需要包括ioctl处理框架、消息通知框架和共享内存读写框架。
其中,ioctl处理框架用于提供可供定位抽象层调用的地理围栏配置信息添加接口;共享内存读写框架用于提供访问共享内存的接口;消息通知框架用于提供向SensorHub发送消息的接口。
示例性的,当ioctl处理框架提供的添加地理位置配置信息的接口被定位抽象层调用后,处理地理围栏业务的内核就会通过共享内存读写框架提供的写接口将需要添加的地理围栏配置信息写入共享内存中,并通过消息通知框架提供的用于向SensorHub发送消息的接口通知SensorHub向共享内存写入了地理围栏配置信息。
为了更好的理解本申请实施例提供的技术方案,以下结合图7和图8对内核层做的具体改进,以及在实现地理围栏业务时硬件抽象层、内核层和硬件层做的交互进行说明。
需要说明的是,在实际应用中,电子设备的内核层通常不止处理地理围栏这一个业务,还会有其他的业务,例如增强现实(Augmented Reality,AR)业务、音视频业务等,因此为了保证各个业务的正常运行,通常每一个业务都会对应一个内核设备节点,用于指示内核中的哪一块地址用来处理对应的业务。
可理解的,每一个业务对应的内核设备节点指示了内核的不同起始地址,因此不同业务对应的硬件抽象层通过与该业务对应的内核设备节点建立连接,在后续需要内核处理业务时,根据内核设备节点便可以快速、精准的找到处理该业务的内核。
基于此,为了实现本申请实施例提供的技术方案,内核层需要创建一个处理本申请实施例提供的地理围栏的处理业务的内核设备节点。此外,为了和其他业务解耦,内核层还需要创建一个专门用来接收硬件层中SensorHub发送给地理围栏的处理业务的内核设备节点的内核线程(本申请中称为:轮询线程)。
参见图7,示例性的,具体到本申请实施例提供的技术方案中,在内核层的初始化阶段,可以先创建轮询线程(执行图7中的步骤1),再创建内核设备节点(执行图7中的步骤2)。
示例性的,在一些实现方式中,轮询线程的创建可以是通过kthread_run()函数实现。
可理解的,内核线程是工作在内核空间的,不属于任何一个进程,可以发生休眠,但是一旦接收到消息就会重新激活,因此即便AP进如休眠模式,SensorHub只要发送了消息,步骤1中创建的轮询线程就会激活接收到,进而唤醒AP。这样,即便在AP处于休眠模式的情况下,通过SensorHub也可以实现对地理围栏业务的处理,并在需要AP 介入时才唤醒AP,从而保证了地理围栏能力的连续性。
此外,需要说明的是,上述创建轮询线程使用的kthread_run()函数具体是用于创建并启动该轮询线程的函数,即轮询线程创建完成后直接启动,无线调用其他函数实现启动操作。
此外,在另一些实现方式中,轮询线程的创建也可以是通过kthread_create()函数。关于kthread_create()函数,具体是只创建一个轮询线程,但不启动。如果启动轮询线程,还需要调用wake_up_process()函数来启动轮询线程。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,需要说明的是,关于内核设备节点的创建,在一些实现方式中,例如可以通过调用misc_register()函数实现。
示例性的,为了区分地理围栏的处理业务与其他业务,对应地理围栏的处理业务的内核设备节点的路径可以指定为“/dev/AAA”。
继续参见图7,示例性的,在完成步骤1和步骤2之后,就可以建立硬件抽象层中定位抽象层(应用程序框架层中位置服务对应的硬件抽象层,也可以理解为位置服务在硬件抽象层对应的一个进程)与经步骤2创建的内核设备节点之间的连接。
示例性的,关于定位抽象层与内核设备节点的连接,在一些实现方式中例如可以通过open()函数。
具体的,在使用open()函数建立定位抽象层与内核设备节点的连接时,需要将内核设备节点指向的路径“/dev/AAA”作为参数,并设置权限。例如,open(/dev/AAA, O_RDWR),表示定位抽象层与路径为“/dev/AAA”的内核设备节点连接,并打开读、写该内核设备节点的权限。
进一步地,在使用open()函数建立定位抽象层与内核设备节点的连接后,会给定位抽象层返回内核设备节点的文件句柄(后续将地理围栏的处理业务对应的内核设备节点的文件句柄表示为:AAAFd)。
需要说明的是,上述所说的AAAFd中记录了访问内核设备节点的相关函数,例如图7中的ioctl处理框架提供的相关函数(如添加地理围栏配置信息的函数/接口)、共享内存读写框架提供的相关函数(如向共享内存写入数据的函数/接口,从共享内存读取数据的函数/接口)、消息通知框架提供的相关函数(如向SensorHub发送消息的函数/接口)。
继续参见图7,由于AAAFd记录了访问内核设备节点的相关函数(可调用的框架),因此当定位抽象层接收到应用程序框架层传输来的需要添加的地理围栏配置信息(图7 中的步骤4)后,便会根据内核设备节点的AAAFd记录的访问内核设备节点的相关函数,调用ioctl处理框架提供的添加地理围栏配置信息的接口,将需要添加的地理围栏配置信息传输给内核设备节点指向的内核(图7中的步骤5)。
继续参见图7,示例性的,内核设备节点指向的内核接收到从定位抽象层传输来的地理围栏配置信息后,便会调用共享内存读写框架提供的写接口将地理围栏配置信息写入共享内存(图7中的步骤6),并在将地理围栏配置信息写入共享内存后,调用消息通知框架提供的接口向SensorHub发送写入地理围栏配置信息的消息(图7中的步骤7),即通知SensorHub已经向共享内存写入了地理围栏配置信息。
此外,需要说明的是,关于内核层中地理围栏的处理业务对应的内核设备节点的AAAFd记录的访问内核设备节点的相关函数(可调用的框架),需要预先创建。具体的创建过程如下:
示例性的,关于ioctl处理框架,例如可以通过AAA_ioctl(struct file*file,unsigned int cmd,unsigned long arg)函数实现。其中,“struct file*file”表示文件结构体为file,代表一个打开的文件,***中每一个打开的文件,在内核空间中都有一个关联的“struct file”;“cmd”表示某项业务对应的数字,“arg”表示某项业务对应的配置参数的起始地址等。
需要说的是,在计算机中,输入输出控制框架(input/output control,ioctl)是一个专用于设备输入输出操作的***调用,该调用传入一个跟设备有关的请求码,***调用的功能完全取决于请求码。
此外,由于地理围栏可以分为GPS地理围栏、WIFI地理为和Cell地理围栏这三个维度,因此不同维度(类型)的地理围栏可以对应不同的cmd,以及不同的配置参数的起始地址。以添加WIFI地理围栏举例,cmd可以为1,arg为某个WIFI的WIFI的MAC 地址和接收信号(RSSI)强度等配置参数的起始地址。
此外,还需要说明的是,为了实现具体产品的灵活配置,即可实现快速业务屏蔽、拓展,在AAA_ioctl()函数体中可以通过宏开关来确定不同业务功能的使用,例如将添加WIFI地理围栏配置信息的接口、添加GPS地理围栏配置信息的接口、添加Cell地理围栏配置信息的接口分别设置在不同的宏开关中,这样通过定义包含添加不同地理围栏配置信息的接口的宏开关就可以实现对应地理围栏配置信息的添加业务。
例如,在AAA_ioctl()函数体中定义了“#ifdef AAA_WIFIFENCE”,则表明ioctl处理框架提供添加WIFI地理围栏配置信息的接口。
还例如,在AAA_ioctl()函数体中定义了“#ifdef AAA_GPSFENCE”,则表明ioctl处理框架提供添加GPS地理围栏配置信息的接口。
还例如,在AAA_ioctl()函数体中定义了“#ifdef AAA_CELLFENCE”,则表明ioctl处理框架提供添加Cell地理围栏配置信息的接口。
还例如,在AAA_ioctl()函数体中定义了“#ifdef AAA_CELLFENCE”,则表明ioctl处理框架提供添加Cell地理围栏配置信息的接口,进一步地还可以在该宏开关中在定义添加不同地理围栏配置信息的接口。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
关于共享内存读写框架是基于内核和SensorHub的共享内存通道进行配置的。具体的,首先针对地理围栏的处理业务设置共享内存的起始地址和内存块大小,然后新开发读共享内存函数和写共享内存函数。
可理解的,读共享内存函数,具体是提供给内核从共享内存中读取SensorHub写入共享内存的地理围栏状态变化数据。所谓地理围栏状态变化数据指示了电子设备进入,或离开了添加到共享内存的哪一个地理围栏配置信息对应的地理围栏。
写共享内存函数,具体是提供给内核将定位抽象层传输的地理围栏配置信息写入共享内存的接口。
关于消息通知框架是基于内核和SensorHub的双向通信通道进行配置的。具体的,首先在双向通信通道中设置标识不同类型的地理围栏(GPS地理围栏、WIFI地理围栏、 Cell地理)的cmd信息,然后在双向通信通道中设置标识不同类型的地理围栏的配置信息的数据长度,这样就可以实现内核发消息通知哪个类型的地理围栏,长度为多少的地理围栏配置信息添加到了共享内容中。相应地,SensorHub接收到该消息后,就可以根据 cmd和配置参数的数据长度从共享内存中读取到正确的地理围栏配置信息。
此外,还需要说明的是,为了实现本申请实施例提供的技术方案,还需要创建内核与SensorHub之间的可靠性机制(后续称为DFR机制)。关于DFR机制的实现,例如可以通过在内核注册AAA_notifier_chain_register()函数,通过该函数监听SensorHub的重启事件。这样,通过该机制,当SensorHub发生重启时,内核就可以快速感知到。
此外,还需要说明的是,本申请实施例提供的技术方案中,内核不能使用应用程序框架层中ioctl处理框架提供的接口函数,向定位抽象层反馈SensorHub写入共享内存的消息,以及监听到的SensorHub发生重启的消息,因此为了实现本申请实施例提供的技术方案,内核采用Netlink机制通知定位抽象层。例如,设置内核可以通过genlmsg_unicast()函数将SensorHub上报的地理围栏状态变化数据(图9中的步骤8至步骤10),以及SensorHub的重启事件上报给定位抽象层,从而使得定位抽象层能够通过应用程序框架层的位置服务通知应用程序层中的NFC智闪卡应用,供NFC智闪卡应用感知并重新添加地理围栏配置信息。
关于电子设备100的软件结构,以及为实现本申请实施例提供的技术方案在内核层做的改进就介绍到此,可以理解的是,图6示出的软件结构中的层以及各层中包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
通过对本申请实施例提供的技术方案应用于的场景、硬件结构、软件结构的描述可知,本申请实施例提供的技术方案无需芯片平台的AP具备地理围栏的处理能力,通过引入低功耗、轻量级的SensorHub,并在内核层新增ioctl处理框架、消息通知框架和共享内存读写框架,借助SensorHub与新增了ioctl处理框架、消息通知框架和共享内存读写框架的内核层进行通信,从而实现了跨平台的地理围栏处理能力,即本申请实施例提供用于实现地理围栏业务的***能够适用于不同平台的电子设备,例如图9所示的,采用平台1提供的芯片的手机、采用平台2提供的芯片的平板电脑、采用平台3提供的芯片的手机等。
此外,需要说明的是,本实施例提供的技术方案,主要针对需要通过内核与硬件层的SensorHub进行通讯的芯片平台。
此外,还需要说明的是,在本实施例中,SensorHub实现的WIFI地理围栏匹配功能、Cell地理围栏匹配功能,以及GPS地理围栏匹配功能均是相互独立的,即相互不影响。因此通过提供在内核层提供与SensorHub间共享内存读写数据、信息通知、异常监听等通机制,从而可以使得不同平台的产品能够快速接入低功耗的SensorHub,并通过宏开关选择性的使用WIFI地理围栏匹配功能、Cell地理围栏匹配功能,以及GPS地理围栏匹配功能。也就是说,本实施例通过封装可以复用的公共框架,如ioctl处理框架、共享内存读写框架和消息通知框架,从而避免了每个特性都去实现内核和SensorHub通信等机制的工作,这样就可以大大降低了内核层特性开发工作。
此外,通过封装可以复用的内核层公共框架,从而使得某些已经支持SensorHub的实现WIFI地理围栏能力、GPS地理围栏能力和Cell地理围栏能的产品,在其内核层直接移植本实施例封装的可以复用的内核层公共框架,这样使得现有的一些产品也可以快速、方便的集成本实施例提供的地理围栏的处理能力,大大提高了本实施例提供的技术方案的覆盖面。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
结合上述给出的场景,以及电子设备的硬件结构和软件结构,下面以WIFI地理围栏这一地理围栏为例,对本申请提供的技术方案的实现细节进行说明,以下内容仅为方便理解而提供的实现细节,并非实施本方案的必须。
需要说明的是,本实施例提供的地理围栏的处理方案大致分为三个阶段。第一个阶段为初始化阶段;第二个阶段为添加地理围栏配置信息的阶段;第三个阶段为地理围栏的匹配阶段。所谓初始化阶段,即安装了需要基于地理围栏实现相应业务的应用的电子设备,如手机开机时,需要对各个软件层中的功能模块/函数/应用,以及手机的硬件进行初始化,从而使得这些功能模块/函数/应用可以被正常访问使用;所谓添加地理围栏配置信息的阶段,即通过需要基于地理围栏实现相应业务的应用,例如NFC智闪卡应用添加每张电子卡对应的地理围栏配置信息,从而使得NFC智闪卡应用能够基于地理围栏实现自动切换不同电子卡顺序,并激活的业务;所谓地理围栏的匹配阶段,即确定手机当前所处位置是否处于已添加的地理围栏配置信息对应的地理围栏中,进而触发地理围栏事件,实现对应业务的激活。
为了便于说明,本实施例以需要基于地理围栏实现相应业务的应用为NFC智闪卡应用为例,从初始化阶段,到添加WIFI地理围栏配置信息,以及进行WIFI地理围栏匹配这三个阶段进行具体说明。
初始化阶段:
参见图10,示例性的,在手机启动后,位于应用程序层的NFC智闪卡应用、位于应用程序框架层的位置服务(LBSService)、位于硬件抽象层中与位置服务对应的定位抽象层(或者说与位置服务对应的进程)、位于内核层用于处理地理位于业务的内核,以及位于硬件层中低功耗、alwaysOnline(一直在线)的SensorHub、用于扫描WIFI的MAC 地址和信号强度的WIFI模块、Modem(热点WIFI)会相继完成初始化操作,关于这些功能/服务/模块的初始化方式,可以参见现有标准,此处不再赘述。
继续参见图10,示例性的,在NFC智闪卡应用和位置服务完成初始化后,为了保证NFC智闪卡应用能够基于地理围栏实现相应的业务,NFC智闪卡应用需要与位置服务进行建联,以保证NFC智闪卡应用能够调用位置服务,从而具备添加地理围栏配置信息和获取地理围栏匹配结果的能力。
示例性的,在一些实现方式中,NFC智闪卡应用与位置服务之间的建联操作,可以是在NFC智闪卡应用与位置服务均初始化后,由NFC智闪卡应用调用建联函数向位置服务发起建联请求。相应地,位置服务在接收到NFC智闪卡应用发起的建联请求后,调用对应的响应接口作出响应,从而完成二者之间的建联。
示例性的,在另一些实现方式中,NFC智闪卡应用与位置服务之间的建联操作,可以是在NFC智闪卡应用与位置服务初始化过程中完成的。例如,通过在NFC智闪卡应用的初始化函数/代码中集成建联函数,这样在初始化函数运行的过程中,当运行到建联函数的位置时,NFC智闪卡应用就会调用建联函数向位置服务发起建联请求。相应地,可以在位置服务的初始化函数/代码中集成响应建联请求的函数,这样在初始化函数运行的过程中,当接收到NFC智闪卡应用通过建立函数发起的建联请求时,就可以通过对应的响应函数作出响应,从而完成二者之间的建联。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
添加地理围栏配置信息阶段:
需要说明的是,在该阶段,需要用户通过NFC智闪卡应用提供的添加WIFI地理围栏配置信息的入口,提供需要添加的WIFI地理围栏配置信息的地址标识号(WIFI的MAC 地址),以及该WIFI的MAC地址对应的WIFI的信号强度信息,这样当用户点击用户界面的确定按钮后,手机便会接收到地理围栏添加指令,进而响应于用户的操作行为,获取用户提供的WIFI的MAC地址和对应的WIFI信号的信号强度信息,进而生成WIFI 地理围栏配置信息。
此外,还需要说明的是,由于本实施例并未对内核层中的内核做调整,因此处理地理围栏业务的内核依旧是应用处理器,故而根据用户提供的WIFI的MAC地址和对应的 WIFI信号的信号强度信息,生成的WIFI地理围栏配置信息是由应用处理器添加到共享内存的。
继续参见图10,示例性的,由应用处理器将WIFI地理围栏配置信息添加到共享内存的过程需要经过应用程序框架层的位置服务、硬件抽象层的定位抽象层才能到达处理地理围栏业务的内核。
继续参见图10,示例性的,当手机响应于用户的操作行为,获取到用户提供的WIFI的MAC地址和对应的WIFI信号的信号强度信息,进而生成WIFI地理围栏配置信息后,可以调用位置服务支持的添加WIFI地理围栏配置信息的添加函数,例如addWifiFence(),将WIFI地理围栏配置信息,即WIFI的MAC地址和对应的WIFI信号的信号强度信息作为参数,传输至位置服务。
相应地,位置服务在得到NFC智闪卡应用提供的WIFI地理围栏配置信息后,调用定位抽象层支持的WIFI地理围栏配置信息的添加函数,例如addWifiFence(),将WIFI 地理围栏配置信息,即WIFI的MAC地址和对应的WIFI信号的信号强度信息作为参数,传输至定位抽象层。
相应地,定位抽象层在得到WIFI地理围栏配置信息后,根据内核层中与其建立连接的内核设备节点(对应的内核用于处理地理围栏业务)提供的文件句柄AAAFd,确定ioctl处理框架提供的ioctl(addWifiFence)函数为添加地理围栏配置信息的函数,进而将WIFI地理围栏配置信息,即WIFI的MAC地址和对应的WIFI信号的信号强度信息作为参数,传输至用于处理地理围栏业务的内核。
相应地,用于处理地理围栏业务的内核在接收到需要添加到共享内存的WIFI地理围栏配置信息后,会通过内核层中新增的共享内存读写框架提供的写接口,将WIFI地理围栏配置信息写入共享内容,然后通过内核层中新增的消息通知框架提供的通知接口,即应用处理器会通过消息通知框架提供的通知接口向低功耗微处理器SensorHub发送通知信息,以告知SensorHub有WIFI地理围栏配置信息添加到了共享内存。
示例性的,在一些实现方式中,内核发送给SensorHub的通知信息,携带了表示某项业务对应的数字(标识信息cmd),以及该业务的配置信息数据的长度。
相应地,SensorHub在接收到内核发送的通知消息后,会根据cmd和该业务的配置信息数据的长度,从共享内存中找到匹配的地理围栏配置信息,如上述添加到共享内存中的WIFI地理围栏配置信息,并启动地理围栏匹配功能。
可理解的,所谓地理围栏匹配功能具体是指能够按照设定周期循环获取电子设备当前扫描到的WIFI的MAC地址和信号强度等信息的地理围栏匹配函数。
示例性的,具体到本实施例中,SensorHub通过解析从共享内存中查找出的地理围栏配置信息,确定是WIFI地理围栏配置信息时,SensorHub启动的地理围栏匹配功能例如可以是一个实现了WIFI匹配算法的函数。
继续参见图10,示例性的,为了能够按照设定周期循环获取电子设备当前扫描到的 WIFI的MAC地址和信号强度等信息,SensorHub还户新起一个线程向WIFI模块和/或Modem模块发送扫描WIFI的MAC地址和信号强度等信息的请求,进而使得WIFI模块和/或Modem模块能够按照设定的周期扫描WIFI的MAC地址和信号强度等信息,或者在WIFI的MAC地址和信号强度等信息发生变化时扫描WIFI的MAC地址和信号强度等信息。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,还需要说明的是,为了区分不同的地理围栏配置信息,SensorHub通过解析从共享内存中查找出的地理围栏配置信息,确定地理围栏配置信息对应的类型后,会为当前的地理围栏配置信息分配一个能够标识其唯一性的地理围栏标识号,并将分配的地理围栏标识号反馈给NFC智闪卡应用,以告知地理围栏配置信息添加成功。
示例性的,在确的地理围栏配置信息为WIFI地理围栏配置信息时,分配的地理围栏标识号,例如可以是WifiFencId。比如对于WIFI的MAC地址为“XXX1”,信号强度为“XXX2”的WIFI地理围栏配置信息,为其分配的地理围栏标识号例如可以是“WifiFencId1”。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
继续参见图10,示例性的,SensorHub为确定的WIFI地理围栏配置信息分配对应的WifiFencId后,会将WifiFencId发送给内核。通过上述描述可知,内核中创建了一个用于接收SensorHub发送给内核的轮询线程(如图7所示),因此该轮询线程会发现 SensorHub发送的WifiFencId,进而基于netlink机制将WifiFencId传输给定位抽象层。
相应地,定位抽象层接收到内核上报的WifiFencId后,调用位置服务支持的地理围栏配置信息添加成功的函数,如图10中WIFI地理围栏配置信息添加成功的函数WifiFenceAddCb(),将WifiFencId作为参数,传输给NFC智闪卡应用。由此,NFC智闪卡应用就能获知根据用户提供的WIFI的MAC地址和对应的WIFI信号的信号强度信息生成的WIFI地理围栏配置信息添加成功。
示例性的,在一些实现方式中,为了便于用户获知地理围栏配置信息是否添加成功,可以设置NFC智闪卡应用接收到WifiFencId后,在显示界面显示地理围栏配置信息添加成功的提示。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
地理围栏的匹配阶段:
具体的说,由于在添加地理围栏配置信息阶段,SensorHub新建进程请求Modem模块和/或WIFI模块扫描WIFI的MAC地址和信号强度,因此当用户走到某一个位置,例如图10中小区A门禁的位置附件时,Modem模块和/或WIFI模块可能会连接到小区A 门禁提供的WIFI的MAC地址和信号强度。
继续参见图10,示例性的,当Modem模块和/或WIFI模块扫描到WIFI的MAC地址和信号强度后,会将扫描到的WIFI的MAC地址和信号强度发送给SensorHub。
可理解的,由于SensorHub在添加地理围栏配置信息的阶段,启动了地理围栏匹配功能,如初始化调用了实现WIFI匹配算法的函数。因此在接收到Modem模块和/或WIFI 模块扫描到的WIFI的MAC地址和信号强度这一手机当前所处的位置信息后,便会根据共享内存中记录的地理围栏配置信息,具体到本实施例中为共享内存中记录的WIFI地理围栏配置信息,确定手机当前的位置信息是否位于共享内存中任一WIFI地理围栏配置信息对应的地理围栏(WIFI地理围栏)。
示例性的,关于根据共享内存中记录的WIFI地理围栏配置信息,确定获取到的位置信息是否位于WIFI地理围栏配置信息对应的WIFI地理围栏的方式,在一些实现方式中,例如可以是:先由SensorHub确定获取到的位置信息对应的地理围栏是否与共享内存中记录的任意WIFI地理围栏配置信息对应的WIFI地理围栏匹配。
相应地,在位置信息对应的地理围栏与共享内存中记录的地理围栏配置信息对应的地理围栏匹配时,SensorHub便可以确定位置信息位于地理围栏配置信息对应的地理围栏;反之,则确定位置信息不位于地理围栏配置信息对应的地理围栏。
需要说明的是,关于位置信息对应的地理围栏是否与共享内存中记录的任意WIFI地理围栏配置信息对应的WIFI地理围栏匹配,在一些实现方式中可以设置一定的匹配阈值。例如,二者匹配度达到80%时,确定匹配。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,为了使应用程序层中需要基于地理围栏实现相应业务的应用,能够基于不同的地理围栏事件,如进入地理围栏,或离开地理围栏实现不同的操作,在SensorHub确定位置信息对应的地理围栏与共享内存中记录的地理围栏配置信息对应的地理围栏匹配之后,还需要向共享内存中写入地理围栏对应的地理围栏状态变化信息,具体到本实施例中为写入WIFI地理围栏对应的WIFI地理围栏状态变化信息。
需要说明的是,本实施例中写入共享内存的WIFI地理围栏状态变化信息具体用于指示手机进入WIFI地理围栏,或者离开WIFI地理围栏。
示例性的,如果写入的地理围栏状态信息是针对GPS地理围栏的,则是用于指示手机进入GPS地理围栏,或者离开GPS地理围栏。
示例性的,如果写入的地理围栏状态信息是针对Cell地理围栏的,则是用于指示手机进入Cell地理围栏,或者离开Cell地理围栏。
此外,还需要说明的是,在一些实现方式中,例如可以用“Y”或“1”表示进入对应的地理围栏,用“N”或“0”表示离开对应的地理围栏。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
相应地,在确定位置信息位于共享内存中任一地理围栏配置信息对应的地理围栏时,由应用处理器确定地理围栏对应的应用场景,并激活应用场景对应的业务操作。
示例性的,关于由应用处理器确定地理围栏对应的应用场景,并激活应用场景对应的业务操作,在一些实现方式中,例如可以是在位置信息位于地理围栏配置信息对应的地理围栏时,先由应用处理器确定地理围栏对应的应用场景,并从共享内存中获取地理围栏状态变化信息;然后由应用处理器根据地理围栏状态变化信息,激活应用场景对应的业务操作,即由应用处理器根据地理围栏状态变化信息,确定电子设备是否为进入地理围栏,在电子设备是进入地理围栏时,由应用处理器激活应用场景对应的业务操作。
此外,还需要说明的是,在激活应用场景对应的业务操作之后,如果再次接收到地理围栏状态变化信息,并且再次接收到的地理围栏状态变化信息指示手机离开地理围栏,则应用处理器会执行退出该应用场景对应的业务操作。
关于上述实现流程,具体到本实施例中为:在确定位置信息位于共享内存中任一WIFI地理围栏配置信息对应的WIFI地理围栏时,由应用处理器确定WIFI地理围栏对应的应用场景,并在从共享内存中读取的该WIFI地理围栏对应的WIFI地理围栏状态变化信息指示进入WIFI地理围栏时,激活应用场景对应的业务操作。
相应地,在激活应用场景对应的业务操作后,从共享内存中读取的该WIFI地理围栏对应的WIFI地理围栏状态变化信息指示离开WIFI地理围栏时,退出应用场景对应的业务操作。
为了更好的理解上述地理围栏的匹配阶段,以需要激活的应用场景对应的业务操作为激活小区A门禁卡为例,继续参见图10,示例性的,在WIFI地理围栏添加成功后,如果用户步行至小区A门禁(附近),WIFI模块扫描到WIFI的MAC地址,信号强度等WIFI地理围栏信息,由于SensorHub侧的Wifi匹配算法(WIFI地理围栏匹配功能) 在开启后一直在运行,因此会判断当前扫描到的WIFI地理围栏信息和共享内存中存储的 WIFI地理围栏配置信息是否匹配,如果匹配则确定此刻手机进入Wifi范围内,即进入匹配的WIFI地理围栏配置信息对应的WIFI地理围栏,此时会生成进入WIFI地理围栏的 WIFI地理围栏状态变化信息,并将WIFI地理围栏状态变化信息写入共享内存。
示例性的,在确定有地理围栏事件(进入地理围栏或离开地理围栏)发生后,SensorHub还需要通知应用处理器,以使应用处理器将WIFI地理围栏状态变化信息反馈至应用程序层的NFC智闪卡,进而使得NFC智闪卡能够根据匹配的WIFI地理围栏对应的应用场景,以及WIFI地理围栏状态变化信息指示的地理围栏事件激活小区A的门禁卡,或者退出小区A的门禁卡。
继续参见图10,示例性的,SensorHub通知应用处理器的过程,具体是向应用处理器对应的用于处理地理围栏业务的内核发送有WIFI地理围栏状态变化信息写入共享内存的通知消息。
可理解的,通过上述结合图7和图8对内核层的描述可知,内核层中创建的用于接收SensorHub发送的通知消息的轮询线程会按照设定周期轮询接收SensorHub发送的通知消息,因此当SensorHub发送了有WIFI地理围栏状态变化信息写入共享内存的通知消息后,在一个轮询周期内,轮询线程便会接收到该通知消息,进而通知处理地理围栏业务的内核从共享内存中读取该通知信息对应的WIFI地理围栏状态变化信息。
继续参见图10,示例性的,内核通过共享内存读写框架提供的读接口/函数,从共享内存中读取到该通知信息对应的WIFI地理围栏状态变化信息后,会基于netlink机制将读取到的WIFI地理围栏状态变化信息传输至定位抽象层。
相应地,定位抽象层在接收到内核基于netlink机制上报的WIFI地理围栏状态变化信息后,会调用地理围栏状态变化接口,具体到本实施例中为调用WIFI地理围栏状态变化接口WifiFenceChangeCb(),并将接收到的WIFI地理围栏状态变化信息作为参数,从而实现将WIFI地理围栏状态变化信息上报至位置服务。
示例性的,在一些实现方式中,WIFI地理围栏状态变化信息具体包括了WifiFenceId,以及进入WifiFenceId对应的WIFI地理围栏或离开WifiFenceId对应的WIFI地理围栏等参数信息。例如,可以用“Y”或“1”表示进入对应的WIFI地理围栏,用“N”或“0”表示离开对应的WIFI地理围栏。
相应地,位置服务接收到定位抽象层上报的WIFI地理围栏状态变化信息后,就会将 WIFI地理围栏状态变化信息通知给应用程序层的NFC智闪卡应用。
示例性的,以WIFI地理围栏状态变化信息指示进入WIFI地理围栏为例,NFC智闪卡接收到该WIFI地理围栏状态变化信息后,便会激活小区A门禁卡。
也就是说,当用户携带添加了小区A门禁卡对应的WIFI地理围栏配置信息,并在开启定位服务功能和NFC功能的情况下,携带手机行走至图11中小区A门禁刷卡器附件时,手机中图10所示的各功能模块按照地理围栏匹配阶段的流程进行地理围栏匹配,确定手机进入了小区A门禁卡对应的WIFI地理围栏配置信息对应的WIFI地理围栏,同时确定该WIFI地理围栏对应的应用场景为刷卡控制门禁的栏杆抬起,这是如果用户将手机贴近小区A门禁刷器,小区A门禁卡自动激活,刷卡成功,门禁的栏杆就会自动抬起,如图12所示。
此外,需要说明的是,基于本实施例提供的技术方案,NFC智闪卡应用即便不处于前台运行,也可以在用户无感知的情况下,实现后台自动切换电子卡片,并激活对应电子卡片,从而大大提升用户体验。
此外,还需要说明的是,在实际应用中,当手机贴近小区A门禁刷器时,手机的显示界面可以自动显示激活的小区A门禁卡的页面,也可以不显示,本实施例对此不作限制。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
由此,通过采用一直在线运行的低功耗微处理器来感知地理围栏事件,即便应用处理器处于休眠模式,也能及时感知到地理围栏事件,从而提高了地理围栏能力的连续性,并且由于使用的是低功耗微处理器,因此地理围栏的处理业务所需的功耗也大大降低。
此外,在这种连续性高、低功耗的地理围栏能力基础上,应用处理器根据地理围栏对应的应用场景自动激活应用场景的业务操作,无需用户介入,在用户无感知的情况下就可以完成业务操作,大大提升了用户体验。
此外,还需要说明的是,在实际应用中,预先添加到共享内存中的地理围栏配置信息除了可以是WIFI地理围栏配置信息,还可以是GPS地理围栏配置信息,或者Cell地理围栏配置信息。
也就是说,根据业务需求,添加到共享内存中的地理围栏配置信息可以是GPS地理围栏配置信息、WIFI地理围栏配置信息和Cell地理围栏配置信息中的任意一项或任意多项。关于GPS地理围栏配置信息和Cell地理围栏配置信息的添加方式,与WIFI地理围栏配置信息的添加方式类似,均是通过应用程序层中需要添加地理围栏配置信息的应用调用应用程序框架层中的LBSService支持的地理围栏配置信息添加接口/函数,进而将需要添加的GPS地理围栏配置信息、Cell地理围栏配置信息传输给LBSService;然后由 LBSService调用对应的定位抽象层(或者说硬件抽象层中对应的进程)支持的地理围栏配置信息添加接口/函数,进而将需要添加的GPS地理围栏配置信息、Cell地理围栏配置信息传输给定位抽象层;然后由定位抽象层根据内核层中处理地理围栏业务的内核设备节点提供的文件句柄AAAFd,调用ioctl处理框架提供的添加地理围栏配置信息的接口/ 函数,将需要添加的GPS地理围栏配置信息、Cell地理围栏配置信息传输给内核设备节点对应的内核处理;接着由内核通过共享内存读写框架提供的写接口,将需要添加的GPS 地理围栏配置信息、Cell地理围栏配置信息写入指定的共享内存,并通过消息通知框架提供的接口通知SensorHub,哪一个GPS地理围栏配置信息、Cell地理围栏配置信息已经写入共享内存;最后,SensorHub根据接收到的通知信息,从共享内存中读取出内核写入的GPS地理围栏配置信息、Cell地理围栏配置信息,并请求对应的模块启动,以扫描/ 获取电子设备所处的位置信息,如通过GPS芯片/模块获取电子设备当前所处位置的坐标信息,通过Modem获取电子设备扫描到的小区的小区基站标识号,同时启动地理围栏匹配功能,并为添加到共享内存的每一个GPS地理围栏配置信息、Cell地理围栏配置信息分配对应的地理围栏标识号,将分配的地理围栏标识号反馈至应用程序层中触发添加地理围栏配置信息的应用。
示例性的,关于将分配的地理围栏标识号反馈至应用程序层中触发添加地理围栏配置信息的应用的过程,依旧是在内核通过轮询进程接收到SensorHub反馈的地理围栏标识号后,基于netlink机制将地理围栏标识号传输至定位抽象层;接着,定位抽象层通过对应的地理围栏配置信息添加反馈接口将地理围栏标识号上报至LBSService;最后由LBSService将地理围栏标识号反馈至建联成功的应用。由此,GPS地理围栏配置信息、 Cell地理围栏配置信息的添加就完成了。
示例性的,在一些实现方式中,为了区分添加的地理围栏配置信息具体是GPS地理围栏配置信息,还是Cell地理围栏配置信息,还是WIFI地理围栏配置信息,可以分别提供对应这三种地理围栏配置信息的函数/接口。例如上述实施例中对应WIFI地理围栏配置信息的添加WIFI地理围栏的函数addWifiFence、ioctl(addWifiFence),WIFI地理围栏配置信息对应的WIFI地理围栏标识号WifiFenceId,返回WIFI地理围栏配标识号的函数WifiFenceAddCb等。基于此,对应GPS地理围栏配置信息的添加GPS地理围栏的函数可以表示为addGpsFence、ioctl(addGpsFence),GPS地理围栏配置信息对应的GPS地理围栏标识号GpsFenceId,返回GPS地理围栏配标识号的函数GpsFenceAddCb()等;对应Cell地理围栏配置信息的添加Cell地理围栏的函数可以表示为addCellFence、 ioctl(addCellFence),Cell地理围栏配置信息对应的Cell地理围栏标识号CellFenceId,返回Cell地理围栏配标识号的函数CellFenceAddCb()等。
基于上述情况,在地理围栏配置信息可以是GPS地理围栏配置信息、WIFI地理围栏配置信息、Cell地理围栏配置信息中的任意一项或任意多项时,根据用户开启定位服务功能时选择的位置信息模式,获取到的电子设备的位置信息也可以是电子设备当前所处位置的坐标信息、电子设备当前扫描到的WIFI的MAC地址和信号强度、电子设备扫描到的小区的小区基站标识号中的任意一项或多项。例如,在用户选择的位置信息模式是准确度高的模式时,获取的位置信息包括上述三种,对于这种情况,匹配的地理围栏配置信息为这三种位置信息各自对应的地理围栏配置信息,即最终确定的地理围栏是基于 GPS地理围栏、WIFI地理围栏和Cell地理围栏确定的,因此准确性较高。
示例性的,参见图13,20A为GPS地理围栏配置信息对应的GPS地理围栏,20B 为WIFI地理围栏配置信息对应的WIFI地理围栏,20C为Cell地理围栏配置信息对应的Cell地理围栏。
继续参见图13,当开启定位服务功能,并选择位置信息模式为高准确度模式时,在某一时刻如果手机获取到的位置信息包括当前所处位置的坐标信息、当前扫描到的WIFI的MAC地址和信号强度、扫描到的小区的小区基站标识号,而基于当前所处位置的坐标信息确定与20A对应的GPS地理围栏配置信息匹配,基于当前扫描到的WIFI的MAC 地址和信号强度确定与20B对应的WIFI地理围栏配置信息,基于扫描到的小区的小区基站标识号确定与20C对应的Cell地理围栏配置信息匹配,因此根据20A对应的GPS 地理围栏、20B对应的WIFI地理围栏和20C对应的Cell地理围栏,确定手机当前所处的地理围栏为图13中的20D。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
示例性的,在另一些实现方式中,当用户择的位置信息模式是耗电量低的模式时,获取的位置信息包括电子设备当前扫描到的WIFI的MAC地址和信号强度、电子设备扫描到的小区的小区基站标识号这两种,对应这种情况,匹配的地理围栏配置信息为这两种位置信息各自对应的地理围栏配置信息,即最终确定的地理围栏是基于WIFI地理围栏和Cell地理围栏确定的,无需使用耗电量高的GPS实现定位,因此耗电量相对较低。
示例性的,在另一些实现方式中,当用户择的位置信息模式是仅限设备(使用GPS确定位置)的模式时,获取的位置信息仅包括电子设备当前所处位置的坐标信息,对应这种情况,匹配的地理围栏配置信息为这种位置信息各自对应的地理围栏配置信息,即最终确定的地理围栏是基于GPS地理围栏确定的。
应当理解的是,上述说明仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
这样,就可以根据用户需求,采用不同的位置信息获取方式获取电子设备当前所处的位置信息,进而既能满足用户对精确度的要求,又能兼顾地理围栏业务的连续性和功耗。
此外,需要说明的是,上述实施例中涉及到的各种函数名称,仅是为了更好的理解本实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
此外,可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
此外,需要说明的是,在实际的应用场景中由电子设备实现的上述各实施例提供的地理围栏的处理方法,也可以由电子设备中包括的一种芯片***来执行,其中,该芯片***可以包括处理器。该芯片***可以与存储器耦合,使得该芯片***运行时调用该存储器中存储的计算机程序,实现上述电子设备执行的步骤。其中,该芯片***中的处理器可以是应用处理器也可以是非应用处理器的处理器。
另外,本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的地理围栏的处理方法。
另外,本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行上述相关步骤,以实现上述实施例中的地理围栏的处理方法。
另外,本申请的实施例还提供一种芯片(也可以是组件或模块),该芯片可包括一个或多个处理电路和一个或多个收发管脚;其中,所述收发管脚和所述处理电路通过内部连接通路互相通信,所述处理电路执行上述相关方法步骤实现上述实施例中的地理围栏的处理方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
此外,通过上述描述可知,本申请实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (14)

1.一种地理围栏的处理方法,其特征在于,应用于电子设备,所述电子设备包括低功耗微处理器、应用处理器和位置信息获取模块,所述方法包括:
在所述位置信息获取模块获取到所述电子设备的第一位置信息时,所述低功耗微处理器根据共享内存中记录的地理围栏配置信息,确定所述第一位置信息是否位于所述地理围栏配置信息对应的地理围栏;
在所述第一位置信息位于所述地理围栏配置信息对应的地理围栏时,所述应用处理器确定所述地理围栏对应的应用场景,并激活所述应用场景对应的业务操作。
2.根据权利要求1所述的方法,其特征在于,在所述第一位置信息位于所述地理围栏配置信息对应的地理围栏时,所述方法还包括:
所述低功耗微处理器生成指示所述电子设备进入所述地理围栏的地理围栏状态变化信息;
所述低功耗微处理器向所述共享内存中写入指示所述电子设备进入所述地理围栏的地理围栏状态变化信息。
3.根据权利要求3所述的方法,其特征在于,在所述第一位置信息位于所述地理围栏配置信息对应的地理围栏时,所述应用处理器确定所述地理围栏对应的应用场景,并激活所述应用场景对应的业务操作,包括:
在所述第一位置信息位于所述地理围栏配置信息对应的地理围栏时,所述应用处理器从所述共享内存中获取所述地理围栏状态变化信息,所述地理围栏状态变化信息指示所述电子设备进入所述地理围栏;
所述应用处理器确定所述地理围栏对应的应用场景;
所述应用处理器根据所述地理围栏状态变化信息,激活所述应用场景对应的业务操作。
4.根据权利要求3所述的方法,其特征在于,在所述应用处理器根据所述地理围栏状态变化信息,激活所述应用场景对应的业务操作之后,所述方法还包括:
在所述位置信息获取模块获取到所述电子设备的第二位置信息时,所述低功耗微处理器根据共享内存中记录的地理围栏配置信息,确定所述第二位置信息是否位于所述地理围栏配置信息对应的地理围栏;
在所述第二位置信息离开所述地理围栏配置信息对应的地理围栏时,所述应用处理器退出所述应用场景对应的业务操作。
5.根据权利要求4所述的方法,其特征在于,在所述第二位置信息离开所述地理围栏配置信息对应的地理围栏时,所述方法还包括:
所述低功耗微处理器生成指示所述电子设备离开所述地理围栏的地理围栏状态变化信息;
所述低功耗微处理器向所述共享内存中写入指示所述电子设备进入所述地理围栏的地理围栏状态变化信息。
6.根据权利要求5所述的方法,其特征在于,在所述第二位置信息离开所述地理围栏配置信息对应的地理围栏时,所述应用处理器退出所述应用场景对应的业务操作,包括:
在所述第二位置信息离开所述地理围栏配置信息对应的地理围栏时,所述应用处理器从所述共享内存中获取所述地理围栏状态变化信息,所述地理围栏状态变化信息指示所述电子设备离开所述地理围栏;
所述应用处理器根据所述地理围栏状态变化信息,退出所述应用场景对应的业务操作。
7.根据权利要求1至6任一项所述的方法,其特征在于,在所述位置信息获取模块获取到所述电子设备的第一位置信息时,所述低功耗微处理器根据共享内存中记录的地理围栏配置信息,确定所述第一位置信息是否位于所述地理围栏配置信息对应的地理围栏之前,所述方法还包括:
响应于接收到的地理围栏添加指令,根据所述位置信息获取模块获取到的位置信息生成所述地理围栏配置信息;
所述应用处理器将所述地理围栏配置信息添加到所述共享内存。
8.根据权利要求7所述的方法,其特征在于,在所述应用处理器将所述地理围栏配置信息添加到所述共享内存之后,所述方法还包括:
所述应用处理器向所述低功耗微处理器发送第一通知信息,以告知所述低功耗微处理器所述地理围栏配置信息已添加到所述共享内存,所述第一通知消息包括所述所述地理围栏配置信息对应的地理围栏类型的标识号和所述地理围栏配置信息在所述共享内存中的地址信息。
9.根据权利要求8所述的方法,其特征在于,在所述应用处理器向所述低功耗微处理器发送通知信息之后,所述方法还包括:
所述低功耗微处理器接收到所述第一通知信息后,根据所述标识号和所述地址信息,从所述共享内存中获取对应的地理围栏配置信息;
所述低功耗微处理器为所述地理围栏配置信息分配地理围栏标识号;
所述低功耗微处理器将所述地理围栏标识号发送给所述应用处理器;
所述低功耗微处理器按照设定周期循环调用地理围栏匹配函数,执行所述获取所述电子设备的位置信息的步骤。
10.根据权利要求9所述的方法,其特征在于,在所述低功耗微处理器将所述地理围栏标识号发送给所述应用处理器之后,所述方法还包括:
所述低功耗微处理器通过轮询线程接收到所述地理围栏标识号后,基于netlink机制将所述地理围栏标识号上报至生成所述地理围栏添加指令的应用。
11.根据权利要求1至6任一项所述的方法,其特征在于,所述位置信息获取模块包括以下任意一项或任意多项:
用于获取所述电子设备当前所处位置的坐标信息的GPS模块、用于获取所述电子设备当前扫描到的WIFI的MAC地址和信号强度的WIFI模块、用于获取所述电子设备扫描到的小区的小区基站标识号的Modem模块。
12.根据权利要求1至6任一项所述的方法,其特征在于,所述地理围栏配置信息包括以下任意一项或任意多项:
GPS地理围栏配置信息、WIFI地理围栏配置信息、Cell地理围栏配置信息。
13.一种电子设备,其特征在于,所述电子设备包括:存储器和处理器,所述存储器和所述处理器耦合;所述存储器存储有程序指令,所述程序指令由所述处理器执行时,使得所述电子设备执行如权利要求1至12任意一项所述的地理围栏的处理方法。
14.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至12任意一项所述的地理围栏的处理方法。
CN202210599675.7A 2022-05-30 2022-05-30 地理围栏的处理方法、设备及存储介质 Active CN116033342B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210599675.7A CN116033342B (zh) 2022-05-30 2022-05-30 地理围栏的处理方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210599675.7A CN116033342B (zh) 2022-05-30 2022-05-30 地理围栏的处理方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116033342A true CN116033342A (zh) 2023-04-28
CN116033342B CN116033342B (zh) 2023-11-24

Family

ID=86073526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210599675.7A Active CN116033342B (zh) 2022-05-30 2022-05-30 地理围栏的处理方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116033342B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117273830A (zh) * 2023-11-23 2023-12-22 荣耀终端有限公司 显示卡片的方法、电子设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150046661A1 (en) * 2013-08-07 2015-02-12 Qualcomm Incorporated Dynamic Address Negotiation for Shared Memory Regions in Heterogeneous Muliprocessor Systems
CN111328020A (zh) * 2018-12-17 2020-06-23 华为技术有限公司 基于室内定位***的业务处理方法和装置
WO2020191598A1 (zh) * 2019-03-25 2020-10-01 华为技术有限公司 一种确定终端设备位于地理围栏内部的方法和终端设备
CN112311824A (zh) * 2019-07-29 2021-02-02 腾讯科技(深圳)有限公司 一种考勤信息处理的方法以及相关装置
CN112398895A (zh) * 2019-08-19 2021-02-23 阿里巴巴集团控股有限公司 提供服务信息的方法及装置
CN113779166A (zh) * 2021-08-20 2021-12-10 上海瑾盛通信科技有限公司 地理围栏控制方法、装置、存储介质及电子设备
CN113794801A (zh) * 2021-08-09 2021-12-14 荣耀终端有限公司 地理围栏的处理方法及装置
WO2022037384A1 (zh) * 2020-08-17 2022-02-24 华为技术有限公司 C-v2x的低功耗方法、电子设备及芯片***

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150046661A1 (en) * 2013-08-07 2015-02-12 Qualcomm Incorporated Dynamic Address Negotiation for Shared Memory Regions in Heterogeneous Muliprocessor Systems
CN111328020A (zh) * 2018-12-17 2020-06-23 华为技术有限公司 基于室内定位***的业务处理方法和装置
WO2020191598A1 (zh) * 2019-03-25 2020-10-01 华为技术有限公司 一种确定终端设备位于地理围栏内部的方法和终端设备
CN112311824A (zh) * 2019-07-29 2021-02-02 腾讯科技(深圳)有限公司 一种考勤信息处理的方法以及相关装置
CN112398895A (zh) * 2019-08-19 2021-02-23 阿里巴巴集团控股有限公司 提供服务信息的方法及装置
WO2022037384A1 (zh) * 2020-08-17 2022-02-24 华为技术有限公司 C-v2x的低功耗方法、电子设备及芯片***
CN113794801A (zh) * 2021-08-09 2021-12-14 荣耀终端有限公司 地理围栏的处理方法及装置
CN113779166A (zh) * 2021-08-20 2021-12-10 上海瑾盛通信科技有限公司 地理围栏控制方法、装置、存储介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117273830A (zh) * 2023-11-23 2023-12-22 荣耀终端有限公司 显示卡片的方法、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN116033342B (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
US20230094272A1 (en) Notification Processing System, Method, and Electronic Device
CN114040242B (zh) 投屏方法、电子设备和存储介质
CN110602686B (zh) 一种使用远程sim模块的方法及电子设备
CN114513847A (zh) 定位方法、装置、***、电子设备及存储介质
CN115543159B (zh) 壁纸显示方法、装置、设备及存储介质
CN114727101B (zh) 一种天线功率调节方法及电子设备
CN113472477B (zh) 无线通信***及方法
CN116033342B (zh) 地理围栏的处理方法、设备及存储介质
WO2022048453A1 (zh) 解锁方法及电子设备
CN114339591A (zh) 基于超宽带芯片进行定位的方法和相关装置
CN116055613B (zh) 一种投屏方法和设备
CN116684521B (zh) 音频处理方法、设备及存储介质
CN116033341B (zh) 触发围栏事件的方法和装置
CN116679895B (zh) 一种协同业务的调度方法、电子设备及协同***
CN116709273B (zh) 无线通信***、方法及设备
CN115460445B (zh) 电子设备的投屏方法和电子设备
CN116700556B (zh) 卡片生成方法及相关装置
CN116662024B (zh) 进程间通信监控方法、装置、电子设备及存储介质
CN115767602B (zh) 设备协议子***异常自动纠错方法和电子设备
WO2023160217A1 (zh) 检测嵌入式身份识别模块eSIM卡的方法及终端设备
CN118075393A (zh) 一种显示方法和电子设备
CN117666819A (zh) 鼠标操作方法、电子设备、鼠标和计算机可读存储介质
CN118057798A (zh) 一种应用分享方法及电子设备
CN117998514A (zh) 多网协同切换方法、设备及存储介质
CN117501233A (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