位置信息获取方法、装置和电子设备
文献发布时间:2023-06-19 09:38:30
技术领域
本申请实施例涉及云应用技术领域,尤其涉及位置信息获取方法、装置和电子设备。
背景技术
云应用是指基于云计算技术,将应用放在云服务器上运行,云服务器将渲染后的程序画面压缩编码后,通过网络传输至用户终端。云应用可以是云教育应用、云游戏应用等。以云游戏应用为例,云游戏运行在云服务器,将游戏渲染的音视频数据进行压缩编码之后,通过网络传输到终端,由终端对编码文件进行解码后渲染至显示屏进行显示。然而,由于云游戏运行在云服务器,而云服务器通常部署在机房中,所以云游戏无法获取终端的位置信息,导致无法体验依赖位置信息的游戏。可见当前云应用无法共享终端的位置信息。
发明内容
本申请实施例提供了位置信息获取方法、装置和电子设备,能够达到云应用共享终端的位置信息的目的。
第一方面中,本申请实施例提供一种位置信息获取方法,包括:
获取终端发送的开启请求;所述开启请求用于请求开启云服务器中的位置服务控件;
根据所述开启请求开启所述位置服务控件,以获取初始位置信息;所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息指为所述终端预先设置的初始位置信息;
向所述终端发送所述位置服务控件的开启信息;
获取所述终端发送的所述终端的当前位置信息;所述终端的当前位置信息是所述终端根据所述开启信息确定所述位置服务控件成功开启后得到的位置信息;
将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
可选地,在本申请一些可能的实现方式中,所述获取所述终端发送的所述终端的当前位置信息,包括:
获取所述终端发送的数据包,所述数据包是所述终端根据所述开启信息确定所述位置服务控件成功开启后,对所述终端的当前位置信息进行序列化处理,以及按照预设协议对序列化处理后的所述终端的当前位置信息进行封装得到的数据包;
对所述数据包进行解析,得到所述终端的当前位置信息。
可选地,在本申请一些可能的实现方式中,所述将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息,之后包括:
获取所述终端发送的所述位置服务控件的关闭请求;
根据所述关闭请求关闭所述位置服务控件;
向所述终端发送所述位置服务控件的关闭信息,以使得所述终端根据所述关闭信息确定所述位置服务控件成功关闭后,停止发送所述终端的位置信息。
第二方面中,本申请实施例提供一种位置信息获取方法,包括:
向云服务器发送开启请求;所述开启请求用于请求开启所述云服务器中的位置服务控件;
获取所述云服务器发送的所述位置服务控件的开启信息;所述开启信息为所述云服务器根据所述开启请求开启所述位置服务控件,以获取初始位置信息后发送的信息,所述位置服务控件用于向云应用提供终端的位置信息,所述初始位置信息指为所述终端预先设置的初始位置信息;
若根据所述开启信息确定所述位置服务控件成功开启,则获取所述终端的当前位置信息;
将所述当前位置信息发送给所述云服务器,以使得所述云服务器将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
可选地,在本申请一些可能的实现方式中,所述将所述当前位置信息发送给所述云服务器,包括:
对所述当前位置信息进行序列化处理;
按照预设协议对序列化处理后的所述当前位置信息进行封装,得到数据包;
将所述数据包发送给所述云服务器。
可选地,在本申请一些可能的实现方式中,所述将所述当前位置信息发送给所述云服务器,包括:
将所述当前位置信息实时发送给所述云服务器;或,
按照预设时间间隔将所述当前位置信息发送给所述云服务器。
可选地,在本申请一些可能的实现方式中,,所述将所述当前位置信息发送给所述云服务器,之后包括:
向所述云服务器发送所述位置服务控件的关闭请求;
获取所述云服务器发送的所述位置服务控件的关闭信息;所述关闭信息为所述云服务器根据所述关闭请求关闭所述位置服务控件后发送的信息;
若根据所述关闭信息确定所述位置服务控件成功关闭,则停止发送位置信息。
第三方面中,本申请实施例提供一种位置信息获取装置,具有实现对应于上述第一方面提供的位置信息获取方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述位置信息获取装置包括:
第一获取单元,用于获取终端发送的开启请求;所述开启请求用于请求开启云服务器中的位置服务控件;
开启单元,用于根据所述开启请求开启所述位置服务控件,以获取初始位置信息;所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息指为所述终端预先设置的初始位置信息;
发送单元,用于向所述终端发送所述位置服务控件的开启信息;
第二获取单元,用于获取所述终端发送的所述终端的当前位置信息;所述终端的当前位置信息是所述终端根据所述开启信息确定所述位置服务控件成功开启后得到的位置信息;
更新单元,用于将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
第四方面中,本申请实施例提供一种位置信息获取装置,具有实现对应于上述第二方面提供的位置信息获取方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述位置信息获取装置包括:
第一发送单元,用于向云服务器发送开启请求;所述开启请求用于请求开启所述云服务器中的位置服务控件;
第一获取单元,用于获取所述云服务器发送的所述位置服务控件的开启信息;所述开启信息为所述云服务器根据所述开启请求开启所述位置服务控件,以获取初始位置信息后发送的信息,所述位置服务控件用于向云应用提供终端的位置信息,所述初始位置信息是指为所述终端预先设置的初始位置信息;
第二获取单元,用于若根据所述开启信息确定所述位置服务控件成功开启,则获取所述终端的当前位置信息;
第二发送单元,用于将所述当前位置信息发送给所述云服务器,以使得所述云服务器将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
本申请实施例又一方面提供了一种电子设备,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中的计算机程序来执行上述各方面所述的方法。
本申请实施例又一方面提供了一种存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面、第一方面中的各种实现方式中提供的方法,以及使得计算机设备执行上述第二方面、第二方面中的各种实现方式中提供的方法。
相较于现有技术,本申请实施例提供的方案中,由于云服务器开启位置服务控件后,能够通过位置服务控件为云应用提供位置信息,从而在云服务器获取到终端的当前位置信息后,通过位置服务控件将终端的当前位置信息提供给云应用,从而云应用能够获得终端的当前位置信息。由此达到了云应用共享终端的位置信息的目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种位置信息获取装置运行的系统架构图;
图2为本申请实施例提供的一种位置信息获取方法的流程图;
图3a为本申请实施例提供的一种云游戏登录界面示意图;
图3b为本申请实施例提供的一种云游戏控制界面示意图;
图3c为本申请实施例提供的一种云游戏场景中显示位置信息的界面示意图;
图4为本申请实施例提供的另一种位置信息获取方法的交互示意图;
图5为本申请实施例提供的一种云服务器和终端之间的信令交互示意图;
图6为本申请实施例提供的一种位置信息获取装置的结构示意图;
图7为本申请实施例提供的另一种位置信息获取装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图;
图9为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请实施例中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请实施例中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请实施例方案的目的。
云应用是指基于云计算技术,将应用放在云服务器上运行,云服务器将渲染后的程序画面压缩编码后,通过网络传输至用户终端。云应用可以是云教育应用、云游戏应用等。以云游戏应用为例,云游戏运行在云服务器,将游戏渲染的音视频数据进行压缩编码之后,通过网络传输到用户终端,由用户终端对编码文件进行解码后渲染至显示屏进行显示。然而,由于云游戏运行在云服务器,而云服务器通常部署在机房中,所以云游戏无法获取终端的位置信息,导致无法体验依赖位置信息的游戏。可见当前云应用无法共享终端的位置信息。
上述云计算技术是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在IaaS(Infrastructure asa Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
上述云游戏又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thinclient)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
针对上述云应用无法共享终端的位置信息的技术问题,本申请实施例提供位置信息获取方法、装置、电子设备和存储介质,由于本申请实施例的云服务器开启位置服务控件后,能够通过位置服务控件为云应用提供位置信息,从而在云服务器获取到终端的当前位置信息后,通过位置服务控件将终端的当前位置信息提供给云应用,从而云应用能够获得终端的当前位置信息。由此达到了云应用共享终端的位置信息的目的。
本申请实施例提供的位置信息获取方法可用于云教育、云直播、云游戏等场景,可用于服务器侧,也可用于终端侧,其中,终端侧提供访问云应用的客户端,该客户端可以在用户操作的终端中运行。本申请实施例涉及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请实施例涉及的终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例提供的位置信息获取方法通过位置信息获取装置执行,位置信息获取装置可以运行于图1所示的系统架构,图1为本申请实施例提供的一种位置信息获取装置运行的系统架构图。该系统包括云服务器和终端,应理解,云服务器可以是运行安卓系统的容器或者虚拟机,终端提供访问云应用的客户端,终端支持不同的定位系统,终端的操作系统不做限定。云服务器包括硬件抽象层(Hardware Abstraction Layer,HAL)、框架层(Framework)和应用(Application,App)层,终端包括物理硬件层、Linux内核层、硬件抽象层、框架层和应用层。在一种场景中,位置信息可以采用如下方式进行传输:
首先,在终端侧:物理硬件层中的全球定位系统(Global Positioning System,GPS)设备获取当前终端的位置信息,依次通过Linux内核层中的GPS驱动、硬件抽象层中的数据监听线程、框架层中的位置提供器(Location Provider)和位置管理器服务(LocationManager Service)、应用层中的位置管理器(Location Manager)发送至应用层中的云游戏App,云游戏App将获取到的位置信息发送至云服务器的应用层的云游戏业务进程;
然后,在云服务器侧:云游戏业务进程接收到位置信息后,依次通过硬件抽象层中的数据监听线程、框架层中的位置提供器和位置管理器服务、应用层中的位置管理器发送至应用层中的游戏App,从而使得运行于云服务器的游戏App获取到终端的位置信息。此处云服务器的硬件抽象层有别于终端的硬件抽象层,云服务器的硬件抽象层主要用于创建数据监听线程,通过数据监听线程监听云游戏业务进程转发的命令以及位置信息,解析位置信息后执行对应的回调函数,以将解析后的位置信息传递至云服务器的框架层中的位置提供器,而终端的硬件抽象层主要用于调用终端的位置信息,将调用到的位置信息传递至终端的框架层。云服务器的框架层中的位置提供器和终端的框架层中的位置提供器作用相同,均为向对应的位置管理器服务提供接收到的位置信息,云服务器的框架层中的位置管理器服务和终端的框架层中的位置管理器服务作用相同,均为提供定位服务功能。
应理解,上述终端的应用层内的云游戏App无需在本地安装,上述云服务器的应用层内的游戏App需要进行安装。
结合上述系统架构,下面通过云服务器侧对本申请实施例中的位置信息获取方法进行介绍,请参阅图2,图2为本申请实施例提供的一种位置信息获取方法的流程图,本申请实施例至少包括以下步骤:
201、获取终端发送的开启请求;所述开启请求用于请求开启云服务器中的位置服务控件;
本实施例中,当终端通过客户端请求访问云应用时,终端可以向云服务器发送位置服务控件的开启请求,以使得云服务器接收到终端发送的开启请求。终端的个数可以为1个,也可以为多个,此处不做限定。不同的终端可以访问同一个云应用,也可以访问不同的云应用,此处不做限定。位置服务控件为云服务器提供的位置服务控件,位置服务控件通常位于云服务器的框架层,云应用通常位于云服务器的应用层,框架层和应用层之间具有接口,以便信息(比如位置信息)由框架层传输至应用层。位置服务控件提供位置服务功能,位置服务又称定位服务,位置服务是无线运营公司为用户提供的一种与位置有关的服务。云服务器可以保留完整的位置服务功能,并可以默认授权定位权限,以在云应用运行过程中,避免定位权限弹窗的干扰。其中,默认授权定位权限指的是云服务器默认为云应用开启了终端的定位权限。考虑到实际场景中很多云应用在运行过程中会请求终端的位置信息,而这种请求通常会以弹窗形式在用户终端的显示界面呈现,会对用户体验云应用造成一定干扰,所以云服务器通过为云应用默认开启终端的定位权限,以避免定位权限弹窗的干扰。例如,用户通过手机首次登陆云应用A时,如果云服务器没有默认为云应用A开启手机的定位权限,云应用A会以弹窗形式在终端的云应用的登录界面上进行如下内容的显示:允许“云应用A”访问您的位置?并为用户提供如下三个选项:仅在使用应用期间、始终允许、不允许。用户需要手动从三个选项中进行选取,才能顺利进行下一步操作。而在本实施例中,因为云服务器默认为云应用A开启手机的定位权限,所以用户在使用或体验云应用A的整个过程中,不会受到定位权限弹窗的干扰,一方面能够节省访问云应用A所花费的时间,另一方面也提升了用户体验。
在一种场景下,用户在手机上开启云应用,在显示云应用登录界面后,云应用的终端向云服务器发送位置服务控件的开启请求。具体地,以云游戏为例进行说明,如图3a和图3b所示,图3a为本申请实施例提供的一种云游戏登录界面示意图,图3b为本申请实施例提供的一种云游戏控制界面示意图。玩家在手机上打开“一起来XX”的游戏后,显示如图3a所示的游戏登录界面,该游戏登录界面的右侧有个悬浮按钮,玩家点击该悬浮按钮,弹出如图3b所示的游戏控制界面,游戏控制界面上显示的控制组件有画质、打开定位以及分享。当玩家打开“打开定位”时,终端向云服务器发送位置服务控件的开启请求。可以理解,当玩家关闭“打开定位”时,终端向云服务器发送位置服务控件的关闭请求;当玩家打开“画质”时,如“画质”设置为1080P画质,则终端按照1080P画质呈现游戏画面,当玩家打开“分享”时,可以为玩家提供多种不同类型的接收方,以将该游戏分享给接收方。应理解,在一些可能的场景下,玩家在手机上打开“一起来XX”的游戏后,终端默认自动向云服务器发送位置服务控件的开启请求,而无需玩家主动触发“打开定位”,以加快向云服务发送位置服务控件的开启请求,有助于提升位置信息获取效率。
202、根据所述开启请求开启所述位置服务控件,以获取初始位置信息;所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息是为所述终端预先设置的初始位置信息;
本实施例中,云服务器在接收到终端发送的位置服务控件的开启请求后,根据该开启请求开启位置服务控件。云服务器的位置服务控件主要是用于向云应用提供终端的位置信息,位置服务控件的位置信息主要来源于终端发送过来的位置信息,位置服务控件在得到终端发送过来的位置信息后,也就能使得运行在云服务器的云应用也能获取到终端的位置信息。
另外,考虑到部分云应用在无法获取位置信息的情况下是无法显示应用场景的,比如部分云游戏在无法获取位置信息的情况下是无法显示游戏场景的,所以在云应用接收到终端的位置信息前,云服务器的位置服务控件会保持一个默认的位置信息(初始位置信息)供云应用来获取,以便云应用在终端的显示界面顺利显示应用场景,另外也有助于加快进入应用场景,减少进入应用场景的等待时间。可见,该初始位置信息为云应用接收到终端的位置信息前,云服务器的位置服务控件提供给云应用的位置信息。在实际场景中,初始位置信息可以自定义设置,如设置初始位置信息为“北京”、“深圳”等,此处不做限定。初始位置信息可以设置为多个,当需要确定初始位置信息时,云服务器可以从多个初始位置信息中进行随机选取。
203、向所述终端发送所述位置服务控件的开启信息;
本实施例中,云服务器在开启位置服务控件后,将位置服务控件的开启信息发送给终端。考虑到在实际应用中,位置服务控件存在开启失败的可能,如果位置服务控件开启失败,终端向云服务器发送终端的当前位置信息是无法提供给云应用的,为了避免终端无效频繁发送终端的当前位置信息,节省网络资源,所以需要云服务器在开启位置服务控件后,将位置服务控件的开启信息发送给终端。
204、获取所述终端发送的所述终端的当前位置信息;所述终端的当前位置信息是所述终端根据所述开启信息确定所述位置服务控件成功开启后得到的位置信息;
本实施例中,在将位置服务控件的开启信息发送给终端后,终端根据该开启信息判断位置服务控件是否成功开启,若判断位置服务控件成功开启,则终端获取当前的位置信息,将当前的位置信息发送给云服务器,以便云服务器获取终端的当前位置信息。可以理解,若终端判断位置服务控件未成功开启,则终端不会将当前的位置信息发送给云服务器,终端可以选择重新发送位置服务控件的开启请求,以重新请求云服务器开启位置服务控件。终端可以通过GPS、基站以及无线网络等多种方式来获取自身的位置信息。在实际场景中,终端可以实时获取当前位置信息,终端也可以按照预设时间间隔或预设频率获取当前位置信息。由于终端的位置可能随着时间产生变化,所以当前位置信息通常是一个动态的位置信息,不同时间点的位置信息可能不同,也可能相同。
需要说明的是,当前位置信息通常包括时间戳(又称时戳)。时间戳是使用数据签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息,时间戳的主要目的在于通过一定的技术手段,对数据产生的时间进行认证,从而验证这段数据在产生后是否经过篡改。
在一些可能的实施例中,步骤204获取所述终端发送的所述终端的当前位置信息,包括:
获取所述终端发送的数据包,所述数据包是所述终端根据所述开启信息确定所述位置服务控件成功开启后,对所述终端的当前位置信息进行序列化处理,以及按照预设协议对序列化处理后的所述终端的当前位置信息进行封装得到的数据包;
对所述数据包进行解析,得到所述终端的当前位置信息。
具体地,考虑到终端获取的当前位置信息的数据量比较大,当前位置信息中存在一些冗余数据(比如位置定位成功前有很多的搜索卫星的数据),而云应用需要优先保证音视频流的传输带宽,如果当前位置信息的数据量太大,就会影响整体传输带宽,为了解决该技术问题,在一些实施例中,终端发送给云服务器的当前位置信息是通过数据包形式发送的,终端在将当前位置信息发送给云服务器之前,需要先对当前位置信息进行序列化处理,然后按照预设协议(比如SUBCMD_LOCATION_UPDATE协议等私有协议)对序列化处理后的所述终端的当前位置信息进行封装,得到数据包,最后将数据包发送给云服务器。云服务器在接收到数据包后,对数据包进行解析,得到解析后的当前位置信息(比如经度、纬度、海拔、方位等)。应理解,通过对当前位置信息进行序列化处理,能够去除当前位置信息中的冗余数据,能够节省传输带宽,通过对序列化处理后的当前位置信息进行封装,进一步减少传输带宽,从而保证云应用的音视频流的传输带宽。
当终端需要把当前位置信息通过网络进行传输,或者需要将当前位置信息持久化,以便将来使用时都可以把当前位置信息进行序列化,上述对当前位置信息进行序列化处理指的是将当前位置信息转换为可保持或传输的字节序列(二进制字节)的过程,与序列化相对应的是反序列化,反序列化指的是将序列化过程中所生成的二进制字节转换为当前位置信息的过程,将序列化和反序列化进行结合,以实现存储和传输数据。终端将当前位置信息发送给云服务器的数据传输过程中,通常可以按照默认的序列化方式处理当前位置信息,以实现位置信息和序列化的紧密耦合。
205、将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
本实施例中,云服务器接收到终端发送过来的当前位置信息后,将该终端的当前位置信息提供给位置服务控件,位置服务控件获取到该终端的当前位置信息后,将位置服务控件提供的初始位置信息更新为该终端的当前位置信息,从而云应用可以获取到该终端的当前位置信息。在一种场景下,云应用获取到该终端的当前位置信息后,可以实时渲染该终端的当前位置信息,再通过云服务器将该当前位置信息通过网络传输至终端进行渲染呈现,从而终端的显示界面可以显示该当前位置信息。具体地,在上述图3a和图3b的基础上,如图3c所示,图3c为本申请实施例提供的一种云游戏场景中显示位置信息的界面示意图,若位置服务控件成功开启,则终端会在显示界面显示游戏场景,游戏场景中会显示当前位置信息,如图3c中显示的当前位置信息为“深圳市南山区XX街道”。
在一些可能的实施例中,步骤205将所述位置服务控件提供的位置信息更新为所述终端的当前位置信息,之后包括:
获取所述终端发送的所述位置服务控件的关闭请求;
根据所述关闭请求关闭所述位置服务控件;
向所述终端发送所述位置服务控件的关闭信息,以使得所述终端根据所述关闭信息确定所述位置服务控件成功关闭后,停止发送所述终端的位置信息。
具体地,在云应用获取到终端的位置信息后,云服务器可能会在某个时间点接收到终端发送的位置服务控件的关闭请求,比如在某个时间点,用户关闭云应用、用户退出云应用,用户请求关闭定位服务、突然断网等均可能触发终端向云服务器发送位置服务控件的关闭请求,云服务器根据接收到的关闭请求关闭位置服务控件,然后向终端发送位置服务控件的关闭信息,终端接收到关闭信息后,若确定位置服务控件成功关闭,则停止发送位置信息。需要说明的是,在一些场景中,终端向云服务器发送位置服务控件的关闭请求后,无需等待接收云服务发送的关闭信息,直接停止发送位置信息。在另一些场景中,当用户关闭云应用、用户退出云应用,用户请求关闭定位服务、突然断网时,终端直接停止发送位置信息。可见,终端向云服务器发送位置服务控件的关闭请求后,云服务器根据关闭请求关闭位置服务控件,避免了在一些场景下云服务器的位置服务控件一直处于开启状态,从而减轻了云服务器的运行负担。
本申请实施例提供的方案中,由于云服务器开启位置服务控件后,能够通过位置服务控件为云应用提供位置信息,从而在云服务器获取到终端的当前位置信息后,通过位置服务控件将终端的当前位置信息提供给云应用,从而云应用能够获得终端的当前位置信息。由此达到了云应用共享终端的位置信息的目的。
下面从云服务器侧和终端侧信息交互的角度对本申请实施例的位置信息获取方法进行介绍,请参阅图4,图4为本申请实施例提供的另一种位置信息获取方法的交互示意图,本申请实施例至少包括以下步骤:
401、终端向云服务器发送开启请求;所述开启请求用于请求开启所述云服务器中的位置服务控件;
本实施例中,当终端通过客户端请求访问云应用时,终端可以向云服务器发送位置服务控件的开启请求。终端向云服务器发送的位置服务控件的开启请求采用的协议可以为:SUBCMD_GPS_ON_REQ。其中,SUBCMD_GPS_ON_REQ为私有协议。
云服务器可以是运行安卓系统的容器或者虚拟机,客户端可以是支持GPS定位系统的安卓设备或IOS设备上的App的客户端。
402、云服务器根据所述开启请求开启所述位置服务控件,以获取初始位置信息;
本实施例中,位置服务控件用于向云应用提供终端的位置信息,初始位置信息是指为终端预先设置的初始位置信息。
403、云服务器向终端发送位置服务控件的开启信息;
本实施例中,云服务器向终端发送的位置服务控件的开启信息可以为:SUBCMD_GPS_ON_RSP。其中,SUBCMD_GPS_ON_RSP指的是云服务器发送全球定位系统(GlobalPositioning System,GPS)开启的回复。
404、若终端根据所述开启信息确定所述位置服务控件成功开启,则获取当前位置信息;
在实际应用场景中,终端可以采用如下网络协议获取当前位置信息:
若终端是安卓设备,则通过如下步骤获取当前位置信息:
1)请求ACCESS_FINE_LOCATION,ACCESS_COARSE_LOCATIONFAN访问位置信息相关的权限;
其中,安卓提供两种位置权限:
获取精确定位权限特征(ACCESS_FINE_LOCATION)和获取粗略定位权限特征(ACCESS_COARSE_LOCATIONFAN),ACCESS_FINE_LOCATION指的是利用包括GPS在内的可用位置提供商以及无线局域网(Wireless Local Area Network,WLAN)和移动数据流量,以尽可能精确地确定位置(Location),ACCESS_COARSE_LOCATIONFAN指的是利用WLAN和/或移动数据流量来确定位置信息,位置信息的精确度不高,相当于城市街区级别的定位精度。
2)获取LocationManager:位置服务控件的应用层管理类;
其中,位置管理器(LocationManager)指的是安卓中访问系统位置服务控件的管理类,可以通过上下文位置服务获取。
3)创建Location数据监听类,并实现LocationListener接口函数onLocationChanged;
其中,创建Location数据监听类主要是通过创建位置监听(LocationListener)接口来监听位置(比如GPS、WLAN)变化,实时动态获取位置信息。位置更改(onLocationChanged)指的是回调函数,当位置发生变化时候会自动调用该回调函数,其中的Location记录了最新的位置信息。
4)添加Location数据监听:调用requestLocationUpdates;
其中,通过调用请求位置更新(requestLocationUpdates)实现Location数据监听。
5)监听回调函数:onLocationChanged获取Location数据。
其中,通过监听回调函数以获取Location数据,回调函数可以为onLocationChanged。
若终端是IOS设备,则通过如下方式获取当前位置信息:
在IOS系统中,位置服务控件基于核心位置(CoreLocation)框架,定位时主要使用位置服务对象(CLLocationManager)、位置信息的接口(CLLocationManagerDelegate)和(位置信息的类)CLLocation,其中CoreLocation是物理位置和方向的核心框架,CLLocationManager是位置服务控件管理类,用于获取设备的位置、高度、速度、方位等信息,CLLocationManagerDelegate是接收位置信息的接口,CLLocation是系统报告的纬度、经度和航向等信息的类。
405、终端将所述当前位置信息发送给云服务器;
本实施例中,终端将当前位置信息发送给云服务器采用的协议可以为:SUBCMD_LOCATION_UPDATE。
其中,SUBCMD_LOCATION_UPDATE指的是私有协议里的一个命令字,用于区分传输不同的命令或数据。本实施例中,终端采用私有协议将位置信息发送给云服务器,一方面能够提高数据传输的安全性,另一方面也便于区分并传输该位置信息。
在一些可能的实施例中,步骤405将所述当前位置信息发送给云服务器,包括:
对所述当前位置信息进行序列化处理;
按照预设协议对序列化处理后的所述当前位置信息进行封装,得到数据包;
将所述数据包发送给所述云服务器。
具体地,考虑到终端获取的当前位置信息的数据量比较大,当前位置信息中存在一些冗余数据(比如位置定位成功前有很多的搜索卫星的数据),而云应用需要优先保证音视频流的传输带宽,如果当前位置信息的数据量太大,就会影响整体传输带宽,为了解决该技术问题,在一些实施例中,终端发送给云服务器的当前位置信息是通过数据包形式发送的,终端在将当前位置信息发送给云服务器之前,需要先对当前位置信息进行序列化处理,然后按照预设协议(比如SUBCMD_LOCATION_UPDATE协议)对序列化处理后的所述终端的当前位置信息进行封装,得到数据包,最后将数据包发送给云服务器。云服务器在接收到数据包后,对数据包进行解析,得到解析后的当前位置信息(比如经度、纬度、海拔、方位等)。应理解,通过对当前位置信息进行序列化处理,能够去除当前位置信息中的冗余数据,能够节省传输带宽,通过对序列化处理后的当前位置信息进行封装,进一步减少传输带宽,从而保证云应用的音视频流的传输带宽。
在一些可能的实施例中,步骤405将所述当前位置信息发送给云服务器,包括:
将所述当前位置信息实时发送给所述云服务器;或,
按照预设时间间隔将所述当前位置信息发送给所述云服务器。
具体地,实际场景中,终端可以实时获取当前位置信息,终端也可以按照预设时间间隔或预设频率获取当前位置信息。终端可以将获取到的当前位置信息实时发送给云服务器,也可以按照预设时间间隔或预设频率将当前位置信息发送给云服务器,此处不做限定。由于终端的位置可能随着时间产生变化,所以当前位置信息通常是一个动态的位置信息,不同时间点的位置信息可能不同,也可能相同。
在实际应用场景中,终端可以采用如下网络协议发送当前位置信息:
将当前位置信息(Location数据)和对应的时间戳(时戳)采用protocol buffers数据格式进行序列化后通过网络发送到云服务器,数据格式如下:
406、云服务器将所述位置服务控件提供的所述初始位置信息更新为所述当前位置信息;
本实施例中,位置服务控件基于该当前位置信息更新提供给云应用的位置信息,从而使得云应用获取终端的当前位置信息。
407、终端向云服务器发送所述位置服务控件的关闭请求;
本实施例中,终端向云服务器发送的位置服务控件的关闭请求采用的协议可以为:SUBCMD_GPS_OFF_REQ。其中,SUBCMD_GPS_OFF_REQ指的是终端向云服务发送GPS关闭的请求。
408、云服务器根据所述关闭请求关闭所述位置服务控件;
409、云服务器向终端发送所述位置服务控件的关闭信息;
本实施例中,云服务器向终端发送的位置服务控件的关闭信息采用的协议可以为:SUBCMD_GPS_OFF_RSP。
410、若终端根据所述关闭信息确定所述位置服务控件成功关闭,则停止发送位置信息。
本申请实施例提供的方案中,由于云服务器开启位置服务控件后,能够通过位置服务控件为云应用提供位置信息,从而在云服务器获取到终端的当前位置信息后,通过位置服务控件将终端的当前位置信息提供给云应用,从而云应用能够获得终端的当前位置信息。由此达到了云应用共享终端的位置信息的目的。
本实施例中,云服务器侧实现位置信息获取主要通过云应用服务进程和GPS硬件抽象层,云应用服务进程和GPS硬件抽象层通过UNIX套接字(domain socket)进行进程间通信(Inter-Process Communication,IPC)。其中,UNIX指的是一种操作系统,domain socket用于实现进程间通信。
云应用服务进程:
用于监听终端的请求,并将终端的请求,Location数据转发给GPS硬件抽象层。
GPS硬件抽象层:
基于UNIX domain socket的GPS硬件抽象层改造,实现GpsInterface接口。有别于基于真实硬件设备的GPS硬件抽象层,GPS数据并不是来自GPS驱动,而是来自云应用服务进程的SUBCMD_LOCATION_UPDATE协议。
GpsInterface接口实现:
主要实现如下4个接口:
cloud_gps_init、cloud_gps_start、cloud_gps_stop以及cloud_gps_cleanup。
下面分别对上述4个接口进行说明:
cloud_gps_init:初始化接口,设置GpsCallbacks回调结构体。创建GPS数据监听进程gps_state_thread,gps_state_thread线程中创建unix socket,监听来自云应用服务进程转发的命令以及Location数据,解析Location数据后执行GpsCallbacks中对应的回调函数,将数据传递到Framework层,供应用层应用程序接口(Application ProgrammingInterface,API)获取。
GpsCallbacks回调结构体如下:
cloud_gps_start:开启定位:通过unix socket向监听线程gps_state_thread发送开启定位命令,监听线程gps_state_thread线程监听到该命令后,通过GpsCallbacks回调结构体中的gps_status_callback函数更新当前状态为GPS_STATUS_SESSION_BEGIN,并设置Location数据回调函数gps_location_callback。
cloud_gps_stop:关闭定位:通过unix socket向监听线程gps_state_thread发送关闭定位命令,gps_state_thread线程监听到该命令后,通过GpsCallbacks回调结构体中的gps_status_callback函数更新当前状态为GPS_STATUS_SESSION_END,并将Location数据回调函数gps_location_callback设置为NULL,即不再上报Location数据。
cleanup:清理gps_state_thread线程,关闭接口。
请参阅图5,图5为本申请实施例提供的一种云服务器和终端之间的信令交互示意图,图中终端包括云游戏终端,云服务器包括云游戏服务进程、GPS硬件抽象层、系统框架层;云游戏终端与云游戏服务进程之间通过tcp socket通信,云游戏服务进程与GPS硬件抽象层之间通过unix socket通信;云服务器和终端之间的信令交互流程如下:
501、GPS硬件抽象层对数据监听线程进行初始化;
502a、云游戏终端向云游戏服务进程发送GPS定位开启请求;
502b、云游戏服务进程向GPS硬件抽象层发送GPS定位开启请求;
502c、GPS硬件抽象层向数据监听线程提供GPS定位开启请求;
503a、GPS硬件抽象层向云游戏服务进程发送GPS定位开启信息;
503b、云游戏服务进程向云游戏终端发送GPS定位开启信息;
504、云游戏终端获取位置信息;
505a、云游戏终端向云游戏服务进程发送位置信息;
505b、云游戏服务进程向GPS硬件抽象层发送位置信息;
505c、GPS硬件抽象层向数据监听线程提供位置信息;
505d、数据监听线程执行回调函数,以将位置信息发送至系统框架层;
506a、云游戏终端向云游戏服务进程发送GPS定位关闭请求;
506b、云游戏服务进程向GPS硬件抽象层发送GPS定位关闭请求;
506c、GPS硬件抽象层向数据监听线程提供GPS定位关闭请求;
507a、GPS硬件抽象层向云游戏服务进程发送GPS定位关闭信息;
507b、云游戏服务进程向云游戏终端发送GPS定位关闭信息;
508、云游戏终端停止请求位置信息。
本实施例中,云游戏服务进程一方面用于监听云游戏终端的请求,并将云游戏终端的请求以及位置信息转发给GPS硬件抽象层。另一方面用于将GPS硬件抽象层发出的信息(比如GPS定位开启信息、GPS定位关闭信息)转发给给云游戏终端。
为了更好地实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置,请参阅图6,图6为本申请实施例提供的一种位置信息获取装置的结构示意图,该位置信息获取装置可以为服务器,服务器包括:
第一获取单元601,用于获取终端发送的开启请求;所述开启请求用于请求开启云服务器中的位置服务控件;
开启单元602,用于根据所述开启请求开启所述位置服务控件,以获取初始位置信息;所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息是指为所述终端预先设置的初始位置信息;
发送单元603,用于向所述终端发送所述位置服务控件的开启信息;
第二获取单元604,用于获取所述终端发送的所述终端的当前位置信息;所述终端的当前位置信息是所述终端根据所述开启信息确定所述位置服务控件成功开启后得到的位置信息;
更新单元605,用于将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
本实施例中,由于开启单元602开启位置服务控件后,能够通过位置服务控件为云应用提供位置信息,从而在第二获取单元604获取到终端的当前位置信息后,通过位置服务控件将终端的当前位置信息提供给云应用,从而云应用能够获得终端的当前位置信息。由此达到了云应用共享终端的位置信息的目的。
可选地,在本申请一些可能的实施例中,所述第二获取单元604,具体用于获取所述终端发送的数据包,所述数据包是所述终端根据所述开启信息确定所述位置服务控件成功开启后,对所述终端的当前位置信息进行序列化处理,以及按照预设协议对序列化处理后的所述终端的当前位置信息进行封装得到的数据包;对所述数据包进行解析,得到所述终端的当前位置信息。
可选地,在本申请一些可能的实施例中,所述更新单元605将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息,之后包括:
第三获取单元,用于获取所述终端发送的所述位置服务控件的关闭请求;
关闭单元,用于根据所述关闭请求关闭所述位置服务控件;
发送单元603,还用于向所述终端发送所述位置服务控件的关闭信息,以使得所述终端根据所述关闭信息确定所述位置服务控件成功关闭后,停止发送所述终端的位置信息。
下面还提供用于实施上述方案的相关装置,请参阅图7,图7为本申请实施例提供的另一种位置信息获取装置的结构示意图,该位置信息获取装置可以为终端,终端包括:
第一发送单元701,用于向云服务器发送开启请求;所述开启请求用于请求开启所述云服务器中的位置服务控件;
第一获取单元702,用于获取所述云服务器发送的所述位置服务控件的开启信息;所述开启信息为所述云服务器根据所述开启请求开启所述位置服务控件,以获取初始位置信息后发送的信息,所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息是指为所述终端预先设置的初始位置信息;
第二获取单元703,用于若根据所述开启信息确定所述位置服务控件成功开启,则获取所述终端的当前位置信息;
第二发送单元704,用于将所述当前位置信息发送给所述云服务器,以使得所述云服务器将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
本申请实施例提供的方案中,由于云服务器开启位置服务控件后,能够通过位置服务控件为云应用提供位置信息,从而第二发送单元704将当前位置信息发送给云服务器后,云服务器可以通过位置服务控件将终端的当前位置信息提供给云应用,从而云应用能够获得终端的当前位置信息。由此达到了云应用共享终端的位置信息的目的。
可选地,在本申请一些可能的实施例中,所述第二发送单元704,具体用于对所述当前位置信息进行序列化处理;按照预设协议对序列化处理后的所述当前位置信息进行封装,得到数据包;将所述数据包发送给所述云服务器。
可选地,在本申请一些可能的实施例中,所述第二发送单元704,具体用于将所述当前位置信息实时发送给所述云服务器;或,按照预设时间间隔将所述当前位置信息发送给所述云服务器。
可选地,在本申请一些可能的实施例中,所述第二发送单元704将所述当前位置信息发送给所述云服务器,之后包括:
第三发送单元,用于向所述云服务器发送所述位置服务控件的关闭请求;
第三获取单元,用于获取所述云服务器发送的所述位置服务控件的关闭信息;所述关闭信息为所述云服务器根据所述关闭请求关闭所述位置服务控件后发送的信息;
处理单元,用于若根据所述关闭信息确定所述位置服务控件成功关闭,则停止发送位置信息。
本申请实施例还提供一种电子设备,图8是本申请实施例提供的一种电子设备的结构示意图,该电子设备具体为云服务器,该云服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)801(例如,一个或一个以上处理器)和存储器802,一个或一个以上存储应用程序803或数据804的存储介质805(例如一个或一个以上海量存储设备)。其中,存储器802和存储介质805可以是短暂存储或持久存储。存储在存储介质805的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器801可以设置为与存储介质805通信,在云服务器800上执行存储介质805中的一系列指令操作。
云服务器800还可以包括一个或一个以上电源806,一个或一个以上有线或无线网络接口807,一个或一个以上输入输出接口808(收发器),和/或,一个或一个以上操作系统809,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
上述实施例中由云服务器所执行的步骤可以基于该图8所示的服务器1020的结构。例如上述实施例中由图6所示的位置信息获取装置所执行的步骤可以基于该图8所示的服务器结构。例如,所述处理器801通过调用存储器802中的指令,执行以下操作:获取终端发送的开启请求;所述开启请求用于请求开启云服务器中的位置服务控件;根据所述开启请求开启所述位置服务控件,以获取初始位置信息;所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息是指为所述终端预先设置的初始位置信息;向所述终端发送所述位置服务控件的开启信息;获取所述终端发送的所述终端的当前位置信息;所述终端的当前位置信息是所述终端根据所述开启信息确定所述位置服务控件成功开启后得到的位置信息;将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
本申请实施例还提供一种电子设备,该电子设备具体为终端,该终端具体为前述实施例中的终端,以手机为例,参考图9,手机包括:射频(Radio Frequency,RF)电路901、存储器902、输入单元903、显示单元904、传感器905、音频电路906、无线保真(wireless-fidelity,Wi-Fi)模块907、处理器908、以及电源909等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图9对手机的各个构成部件进行具体的介绍:
RF电路901可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器908处理;另外,将设计上行的数据发送给基站。通常,RF电路901包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路901还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器902可用于存储软件程序以及模块,处理器908通过运行存储在存储器902的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元903可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元903可包括触控面板9031以及其他输入设备9032。触控面板9031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板9031上或在触控面板9031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板9031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器908,并能接收处理器908发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板9031。除了触控面板9031,输入单元903还可以包括其他输入设备9032。具体地,其他输入设备9032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元904可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元904可包括显示面板9041,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板9041。进一步的,触控面板9031可覆盖显示面板9041,当触控面板9031检测到在其上或附近的触摸操作后,传送给处理器908以确定触摸事件的类型,随后处理器908根据触摸事件的类型在显示面板9041上提供相应的视觉输出。虽然在图9中,触控面板9031与显示面板9041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板9031与显示面板9041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器905,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板9041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板9041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路906、扬声器9061,传声器9062可提供用户与手机之间的音频接口。音频电路906可将接收到的音频数据转换后的电信号,传输到扬声器9061,由扬声器9061转换为声音信号输出;另一方面,传声器9062将收集的声音信号转换为电信号,由音频电路906接收后转换为音频数据,再将音频数据输出处理器908处理后,经RF电路901以发送给比如另一手机,或者将音频数据输出至存储器902以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块907可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了Wi-Fi模块907,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器908是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器908可包括一个或多个处理单元;优选的,处理器908可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器908中。
手机还包括给各个部件供电的电源909(比如电池),优选的,电源可以通过电源管理系统与处理器908逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端设备所包括的处理器908还具有如下功能:向云服务器发送开启请求;所述开启请求用于请求开启所述云服务器中的位置服务控件;获取所述云服务器发送的所述位置服务控件的开启信息;所述开启信息为所述云服务器根据所述开启请求开启所述位置服务控件,以获取初始位置信息后发送的信息,所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息是指为所述终端预先设置的初始位置信息;若根据所述开启信息确定所述位置服务控件成功开启,则获取所述终端的当前位置信息;将所述当前位置信息发送给所述云服务器,以使得所述云服务器将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
另一方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的位置信息获取方法,例如包括:获取终端发送的开启请求;所述开启请求用于请求开启云服务器中的位置服务控件;根据所述开启请求开启所述位置服务控件,以获取初始位置信息;所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息是指为所述终端预先设置的初始位置信息;向所述终端发送所述位置服务控件的开启信息;获取所述终端发送的所述终端的当前位置信息;所述终端的当前位置信息是所述终端根据所述开启信息确定所述位置服务控件成功开启后得到的位置信息;将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。又例如包括:向云服务器发送开启请求;所述开启请求用于请求开启所述云服务器中的位置服务控件;获取所述云服务器发送的所述位置服务控件的开启信息;所述开启信息为所述云服务器根据所述开启请求开启所述位置服务控件,以获取初始位置信息后发送的信息,所述位置服务控件用于向云应用提供所述终端的位置信息,所述初始位置信息是指为所述终端预先设置的初始位置信息;若根据所述开启信息确定所述位置服务控件成功开启,则获取所述终端的当前位置信息;将所述当前位置信息发送给所述云服务器,以使得所述云服务器将所述位置服务控件提供的所述初始位置信息更新为所述终端的当前位置信息。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上对本申请实施例所提供的技术方案进行了详细介绍,本申请实施例中应用了具体个例对本申请实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请实施例的限制。
- 位置信息获取方法、位置信息获取装置和终端
- 位置信息获取方法、装置和电子设备