技术领域
[0002] 这里的主题大致涉及针对电子设备的、基于位置的服务。
相关背景技术
[0003] 传统的移动设备通常专门用于执行特定应用。例如,移动电话提供电话通讯服务,个人数字助理(PDA)提供组织地址、联系方式和备忘录的方式,媒体播放器播放内容,电子邮件设备提供电子邮件通信,浏览器允许用户在因特网冲浪,等等。现代的移动设备可包括这些应用中的一种或多种。
[0004] 一些移动设备(例如, )可利用定位技术来确定该移动设备的地理位置,该地理位置可以包括移动设备的地理地点及朝向(heading)和方向。移动设备的地理位置例如可被用于确定下述情况:该移动设备对该移动设备可在该地理位置获得的服务或数据如何进行操作。
具体实施方式
[0026] 示例移动设备
[0027] 图1是示例移动设备100的框图。移动设备100例如可以是手持式计算机、个人数字助理、蜂窝电话、网络器具、相机、智能电话、增强型通用分组无线电服务(EGPRS)移动电话、网络基站、媒体播放器、导航设备、电子邮件设备、游戏控制台或者这些数据处理设备中的任意两种或更多种的组合或者其他数据处理设备。
[0028] 移动设备概览
[0029] 在一些实现方式中,移动设备100包括触敏显示器102。触敏显示器102可实现液晶显示器(LCD)技术、发光聚合体显示器(LDP)技术或者某种其他显示器技术。触敏显示器102可以对用户的触觉(haptic)型和/或触知(tactile)型接触敏感。另外,移动设备100可包括触敏表面(例如,跟踪板或触摸板)。
[0030] 在一些实现方式中,触敏显示器102可包括多触敏显示器102。多触敏显示器102例如可同时处理多个触摸点,包括处理与每个触摸点的压力、程度和/或位置有关的数据。这样的处理有助于利用多个手指进行的手势(gesture)和交互、和弦(chording)以及其他交互。其他触敏显示器技术也可使用,例如利用触笔或其他点选设备进行接触的显示器。
触敏显示器技术的一些示例在美国专利No.6,323,846、No.6,570,557、No.6,677,932和No.6,888,536中公开。
[0031] 在一些实现方式中,移动设备100可在触敏显示器102上显示一个或多个用户界面,用于为用户提供对各种系统对象的访问(access)以及用于向用户传达信息。在一些实现方式中,图形用户界面可包括一个或多个显示对象104和106。在所示出的示例中,显示对象104和106是系统对象的图形表示。系统对象的一些示例包括设备功能、应用、视窗、文件、警报、事件或其他可标识的系统对象。
[0032] 示例移动设备功能
[0033] 在一些实现方式中,移动设备100可实现多种设备功能,诸如电话通讯设备、电子邮件设备、网络数据通信设备、Wi-Fi基站设备(未示出)以及媒体处理设备。在一些实现方式中,具体显示对象104可显示在菜单栏118中。在一些实现方式中,可以从顶层图形用户界面访问设备功能,诸如图1中所图示出的图形用户界面。触摸这些显示对象104中的一个显示对象例如可调用相应的功能。例如,触摸显示对象189将调用移动设备100上的偏好应用以指定用户对于用于地理位置的通信模式的偏好,如参考图6所描述的。作为另一示例,触摸显示对象144将调用移动设备100上的地图应用以在地图上显示目标位置(例如,用户的机动车的地点),如参考图7所描述的。
[0034] 在一些实现方式中,移动设备100可实现网络分配功能。例如,该功能可使得用户能够在旅行中携带移动设备100并且提供对其相关联网络的接入。具体地,移动设备100可将因特网接入(例如Wi-Fi)扩展到附近的其他无线设备。例如,移动设备100可被配置作为用于一个或多个设备的基站。这样,移动设备100可准许或拒绝对于其他无线设备的网络接入。
[0035] 在一些实现方式中,当设备功能被调用时,移动设备100的图形用户界面发生改变,或者由另一界面或用户界面元素来扩充或替代,以帮助用户访问与相应设备功能相关联的特定功能。例如,响应于用户触摸电话对象,触敏显示器102的图形用户界面可呈现与各种电话功能有关的显示对象,同样,触摸电子邮件对象可使得图形用户界面呈现与各种电子邮件功能有关的显示对象;触摸Web对象可使得图形用户界面呈现与各种Web冲浪功能有关的显示对象;触摸媒体播放器对象可使得图形用户界面呈现与各种媒体处理功能有关的显示对象。
[0036] 在一些实现方式中,可通过按压位于移动设备100的底部附近的按钮120来恢复图1的顶层的图形用户界面环境或状态。在一些实现方式中,每个相应的设备功能可具有相应的“首页(home)”显示对象显示在触敏显示器102上,并且可通过按压“首页”显示对象来恢复图1的顶层的图形用户界面。
[0037] 在一些实现方式中,顶层的图形用户界面可包括另外的显示对象106,诸如短消息传送服务(SMS)对象187、日历对象、照片对象、相机对象、计算器对象、股票对象、天气对象、地图对象144、备忘录对象、时钟对象、地址簿对象以及设定对象。触摸地图对象144例如可调用地图和基于地点的服务环境和支持功能,类似地,选择显示对象106中的任一个可调用相应的对象环境和功能。
[0038] 在图1的图形用户界面上还可显示另外的和/或不同的显示对象。例如,如果设备100被用作用于其他设备的基站,在图形用户界面上可出现一个或多个“连接”对象用于表示连接。在一些实现方式中,显示对象106可由用户配置,例如,用户可指定显示哪些显示对象106,和/或可下载另外的应用或提供其他功能和相应显示对象的其他软件。
[0039] 在一些实现方式中,移动设备100可包括一个或多个输入/输出(I/O)设备和/或传感器设备。例如,扬声器160和麦克风162可被包括以帮助有语音能力的功能,诸如电话和语音邮件功能。在一些实现方式中,可包括上/下按钮184以用于扬声器160和麦克风162的音量控制。移动设备100还可包括开/关按钮182以用于到来电话呼叫的响铃指示器。在一些实现方式中,喇叭164可被包括以帮助免提语音功能,诸如扬声器电话功能。音频插孔166也可被包括,以便使用头戴式耳机和/或麦克风。
[0040] 在一些实现方式中,接近传感器168可被包括,以帮助对用户把移动设备100布置得接近用户的耳朵进行检测并且作为响应而使触敏显示器102解除,以防止偶然的功能调用。在一些实现方式中,触敏显示器102可在当移动设备100接近用户的耳朵时被关断以节省额外的电力。
[0041] 其他传感器也可被使用。例如,在一些实现方式中,环境光传感器170可被利用来帮助调节触敏显示器102的亮度。在一些实现方式中,加速度计172可被用来检测移动设备100的运动,如由方向箭头174指示。从而,可根据所检测到的取向(orientation),例如人像(portrait)方式和/或风景(landscape)方式,来显示对象和/或媒体。在一些实现方式中,移动设备100可包括用于支持位置确定能力的电路和传感器,所述位置确定能力诸如由全球定位系统(GPS)或其他定位系统(例如利用Wi-Fi接入点、电视信号、蜂窝网格、统一资源定位符(URL)的系统)提供。在一些实现方式中,定位系统(例如GPS接收器)可集成到移动设备100中或者可作为可通过接口(例如,端口设备190)而耦合到移动设备
100的单独设备而被提供,以提供对基于地点的服务的接入。
[0042] 在一些实现方式中,端口设备190(例如,通用串行总线(USB)端口或者驳接(dock)端口或者某种其他有线端口连接)可被包括。端口设备190例如可被利用来建立到其他计算设备的有线连接,所述其他计算设备诸如是其他通信设备100、网络接入设备、个人计算机、打印机、显示屏或者能够接收和/或发送数据的其他处理设备。在一些实现方式中,端口设备190利用一种或多种协议允许移动设备100与主机设备同步,所述一种或多种协议例如TCP/IP、HTTP、UDP以及任何其他已知的协议。
[0043] 移动设备100还可包括相机镜头和传感器180。在一些实现方式中,相机镜头和传感器180可被置于移动设备100的背面。相机可捕捉静止图像和/或视频。
[0044] 移动设备100还可包括一个或多个无线通信子系统,诸如802.11b/g通信设备186和或蓝牙通信设备188。其他通信协议也可被支持,这些通信协议包括其他802.x通信协议(例如,WiMax、Wi-Fi、3G)、码分多址(CDMA)、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE),等等。
[0045] 网络操作环境
[0046] 图2是用于图1的移动设备的示例网络操作环境的框图。移动设备202a和202b在数据通信中例如可通过一个或多个有线和/或无线网络210来通信。例如,无线网络212(例如,蜂窝网络)可通过使用网关216来与诸如因特网之类的广域网(WLAN)214通信。
同样,接入设备218(例如802.11g无线接入设备)可提供对广域网214的通信接入。在一些实现方式中,通过无线网络212和接入设备218可既建立语音通信又建立数据通信。例如,移动设备202a可通过无线网络212、网关216和广域网214(例如利用TCP/IP或UDP协议)发起和接收电话呼叫(例如,利用VoIP协议),发送和接收电子邮件消息(例如,利用POP3协议)以及撷取电子文档和/或流(stream),例如网页、照片以及视频。同样,在一些实现方式中,移动设备202b可通过接入设备218和广域网214发起和接收电话呼叫,发送和接收电子邮件消息以及撷取电子文档。在一些实现方式中,移动设备202a和移动设备202b可利用一个或多个线缆被实体地连接到接入设备218,并且接入设备218可以是个人计算机。在本配置中,移动设备202a或移动设备202b可被称为“系链式(tethered)”设备。
[0047] 移动设备202a和移动设备202b还可通过其他手段建立通信。例如,移动设备202a可通过无线网络212而与其他无线设备(例如其他移动设备202a或202b、蜂窝电话等)通信。同样,移动设备202a和移动设备202b可通过利用一个或多个通信子系统(例如图1中所示的蓝牙通信设备)来建立点对点通信220,例如个域(personal area)网。也可实施其他通信协议和技术。
[0048] 移动设备202a或移动设备202b例如可通过一个或多个有线的和/或无线的网络210而与一个或多个服务230、240、250、260、270以及280通信。例如,一个或多个导航服务
230可为移动设备202a或移动设备202b提供导航信息,例如,地图信息、位置信息、路径信息以及其他信息。例如,移动设备202b的用户例如通过按压图1中所示的顶层的图形用户界面上的地图对象144可调用地图功能,并且可请求和接收针对特定地点的地图,请求和接收路径方向,或者请求和接收特定地点附近的商店的列表。
[0049] 消息传送服务240例如可提供电子邮件和/或其他消息传送服务。媒体服务250例如可提供对媒体文件的访问,媒体文件例如歌曲文件、音频书、电影文件、视频剪辑以及其他媒体数据。在一些实现方式中,分开的音频和视频服务器(未示出)可提供对相应类型的媒体文件的接入。同步服务260例如可执行同步服务(例如,同步文件)。激活服务270例如可执行激活处理以激活移动设备202a或移动设备202b。基于地点的服务280(LBS)例如可基于移动设备202a或移动设备202b各自的地理地点来向它们提供内容或服务。其他服务也可被提供,包括软件更新服务,软件更新服务自动确定是否存在对于移动设备202a或移动设备202b上的软件的软件更新,然后把软件更新下载到移动设备202a或移动设备202b,这些软件更新可被手动或自动地解包和/或安装在移动设备202a或移动设备202b上。
[0050] 移动设备202a或移动设备202b还可通过一个或多个有线和/或无线网络210访问其他数据和内容。例如,通过移动设备202a或移动设备202b可接入内容发行者,诸如新闻站点、RSS馈给(feed)、web站点、博客、社交网络站点、开发者网络,等等。这样的接入可通过响应于用户触摸例如Web对象而调用web浏览功能或应用(例如,浏览器)来提供。
[0051] 示例移动设备架构
[0052] 图3是用于图1的移动设备的示例架构的框图。移动设备100可包括存储器接口302、一个或多个数据处理器、图像处理器和/或中央处理单元304、以及外围接口306。存储器接口302、一个或多个数据处理器304和/或外围接口306可以是分开的部件,或者可以集成在一个或多个集成电路中。移动设备100中的各个组件可通过一条或多条通信总线或信号线而被耦合。
[0053] 传感器、设备和子系统可耦合到外围接口306以助于多种功能。例如,运动传感器310、光传感器312和接近传感器314可耦合到外围接口306以助于参考图1所描述的取向、照明和接近功能。其他传感器316还可被连接到外围接口外围接口306以助于相关功能,这些其他传感器诸如是温度传感器、生物测定(biometric)传感器或者其他感测设备。
[0054] 例如,移动设备100可从定位系统332接收定位信息。在各种实方式中,定位系统332可以是移动设备100内的部件,或者可以是(利用有线连接或无线连接)耦合到移动设备100的外部部件。在一些实现方式中,定位系统332可包括GPS接收器和可操作用于从所接收的GPS卫星信号得出定位信息的定位引擎。在其他实现方式中,定位系统332可包括罗盘(例如,磁罗盘)和加速度计以及能基于航位推算(dead reckoning)技术得出定位信息的定位引擎。在又一些实现方式中,定位系统332可使用无线信号(例如,蜂窝信号、IEEE 802.11信号)来确定与移动设备相关联的位置信息,例如Boston,MA的SKYHOOK WIRELESS公司提供的。也可以利用卫星和电视信号的组合的混合定位系统提供定位信息,例如Mountain View,CA的ROSUM公司提供的系统。其他定位系统也是可行的。
[0055] 通过一个或多个射频(RF)接收器318可助于广播接收功能。RF接收器例如可接收AM/FM广播或卫星广播(例如, 或 无线电广播)。RF接收器还可以是TV调谐器。在一些实现方式中,RF接收器138内置于无线通信子系统324中。在其他实现方式中,RF接收器318是可以(例如利用有线或无线连接)耦合到移动设备100的独立子系统。RF接收器318可接收联播(simulcast)。在一些实现方式中,RF接收器318可包括无线电数据系统(RDS)处理器,该处理器可处理广播内容和联播数据(例如,RDS数据)。在一些实现方式中,RF接收器318可以以数字方式调谐以接收各个频率的广播。另外,RF接收器318可包括扫描功能,扫描功能向上或向下调谐并且在可获得广播内容的下一频率处暂停。
[0056] 相机子系统320和光学传感器定位系统332(例如,电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器)可被利用来助于相机功能,诸如记录照片和视频剪辑。
[0057] 通信功能可通过一个或多个无线通信子系统324来辅助,无线子系统324可包括射频接收器和发送器和/或光学(例如,红外)接收器和发送器。通信子系统324的具体设计和实现方式可依赖于移动设备100想要操作的(一个或多个)通信网络或(一个或多个)媒介(medium)。例如,移动设备100可包括被设计为通过GSM网络、GPRS网络、EDGE网络、Wi-Fi或WiMax网络以及蓝牙网络进行操作的通信子系统324。具体地,无线通信子系统324可包括托管(hosting)协议,以使得设备100可被配置作为用于其他无线设备的基站。
[0058] 音频子系统326可耦合到扬声器328和麦克风330以辅助有语音能力的功能,诸如语音识别、语音复制、数字式记录和电话通讯功能。
[0059] I/O子系统340可包括触摸屏控制器342和/或(一个或多个)其他输入控制器344。触摸屏控制器342可耦合到触摸屏346。触摸屏346和触摸屏控制器342例如可使用大量触摸敏感度技术中的任何技术以及其他接近传感器阵列或用于确定与触摸屏346的一个或多个接触点的其他元件来检测触摸和移动或者其中断,所述触摸敏感度技术包括但不限于电容性技术、电阻性技术、红外技术和表面声波技术。在一些实现方式中,I/O子系统340例如可通过扩展坞而被耦合到有线通信子系统。
[0060] (一个或多个)其他输入控制器344可耦合到其他输入/控制设备348,诸如一个或多个按钮、摇杆开关、拨轮(thumbwheel)、红外端口、USB端口和/或诸如触笔之类的点选设备。一个或多个按钮(未示出)可包括用于扬声器328和/或麦克风330的音量控制的上调/下调按钮。
[0061] 在一个实现方式中,将按钮按压第一持续时间可以解锁触摸屏346,将该按钮按压第二持续时间可接通或关断移动设备100的电力,所述第二持续时间长于第一持续时间。用户可定制这一个或多个按钮的功能。触摸屏346例如还可被用于实现虚拟或软按钮和/或键盘。
[0062] 在一些实现方式中,移动设备100可呈现所记录的音频和/或视频文件,诸如MP3、TMAAC以及MPEG文件。在一些实现方式中,移动设备100可包括MP3播放器(诸如iPhone )TM
的功能。移动设备100因此可包括与iPhone 兼容的30引脚连接器。其他输入/输出和控制设备也可被使用。
[0063] 存储器接口302可耦合到存储器350。存储器350可包括高速随机存取存储器和/或非易失性存储器,诸如一个或多个磁盘存储设备、一个或多个光学存储设备和/或闪存(例如,NAND、NOR)。存储器350可存储诸如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS之类的操作系统352或者诸如VxWorks的嵌入式操作系统。操作系统352可包括用于处理基本系统服务和用于执行依赖硬件的任务的指令。在一些实现方式中,操作系统352可是内核(例如,UNIX内核)。
[0064] 存储器350还可以存储通信指令354以辅助与一个或多个另外的设备、一个或多个计算机和/或一个或多个服务器进行通信。通信指令354还可被用于基于(通过GPS/导航指令368获得的)设备的地理位置来选择供设备使用的操作模式和通信媒介。存储器350可包括用于辅助图形用户界面处理的图形用户界面指令356;用于辅助与传感器相关的处理和功能的传感器处理指令358;用于辅助与电话相关的处理和功能的电话指令360;
用于辅助与电子信息传送相关的处理和功能的电子信息传送指令362;用于辅助与web浏览相关的处理和功能的web浏览指令364;用于辅助与媒体处理相关的处理和功能的媒体处理指令366;用于辅助与GPS和导航相关的处理和指令的GPS/导航指令368,例如,在地图上映射目标位置;用于辅助与相机相关的处理和功能的相机指令370;和/或用于辅助其他处理和功能(例如,安全性处理和功能,(基于预定用户偏好的)设备定制处理和功能)的其他软件指令372。存储器350还存储其他软件指令(未示出),诸如用于辅助与web视频处理和功能相关的web视频指令;和/或用于辅助与web购物相关的处理和功能的web购物指令。在一些实现方式中,媒体处理指令366被分为音频处理指令和视频处理指令,以分别辅助与音频相关的处理和功能以及与视频处理相关的处理和功能。在存储器350中还可存储激活记录和国际移动设备标识(IMEI)374或类似硬件标识符。
[0065] 上述有关的指令和应用的中的每一者可以对应于用于执行上述一个或多个功能的指令集。这些指令不一定实现为单独的软件程序、过程或模块。存储器350可包括更多的指令或更少的指令。此外,移动设备100的各种功能可以用硬件和/或软件来实现,包括实现在一个或多个信号处理电路和/或专用集成电路中。
[0066] 示例定位系统
[0067] 图4图示出可结合图1的移动设备使用的示例定位系统400。在图4中,移动设备402可代表移动设备100。移动设备402例如可与一个或多个接入点404(例如,Wi-Fi基站设备)或一个或多个蜂窝塔406通信。在一些实现方式中,接入点404可以是802.11b/g无线路由器、802.11n无线路由器和实现任何合适的Wi-Fi或其他无线联网技术或协议(例如GPS协议)的其他Wi-Fi设备的任意组合。利用与接入点404或蜂窝塔406的通信,基于地点的服务408(基于地点的服务A)或基于地点的服务410(基于地点的服务B)可以估计移动设备402当前所处于的地理区域。移动设备402的实际位置可能在所确定的地理区域内的任何地方。所估计的地理区域不一定是圆形,但为了方便起见可在地图上指示为圆形。
[0068] 移动设备402例如可接收来自接入点404(例如Wi-Fi接入点)的通信412A。通信412A可包括有关接入点404的信息,例如,接入点404的因特网协议(IP)地址和/或媒体访问控制(MAC)地址。通信412A可包括其他信息,诸如接入点404的经度和纬度。在通信412A中接收到的信息可在通信412B中发送给基于地点的服务408。基于地点的服务408例如可利用在通信412B中所发送的信息以一定程度的不确定性或误差来估计移动设备402当前所处于的第一地理区域。在一些实现方式中,基于地点的服务408是这样的系统或服务:它利用被映射到地理地点的接入点的数据库而以某种程度的不确定性或误差来估计设备的位置。估计的位置的准确性或精确性(不确定性或误差的程度)例如可基于技术的涵盖范围、此涵盖范围的准确性或某种其他量度。估计的位置的准确性或精确性可通过一个或多个因子来反应,这一个或多个因子例如可包括该技术或系统的固有特性或限制、给定技术或系统的配置水平(例如,设备附近的接入点或蜂窝塔的数目)。
[0069] 在一些实现方式中,估计的位置的准确性或精确性以距离为单位来表述(例如,“估计的位置准确性达到50米”)。也就是说,移动设备402的实际位置可以在从估计的位置起相距该准确性距离的范围内。例如,第一地理区域可以是圆形,该圆形以估计的位置的经度和纬度为中心并且半径等于所表述的准确性或精确性(例如,在估计的位置的准确性达到38米的情况中,为38米)。替代地,第一地理区域可在地图显示中被表示为方形、矩形、椭圆形、菱形、三角形或一些其他形状的包围区域。
[0070] 在一些实现方式中,多个接入点(例如,五个或更多个)的唯一签名可在基于地点的服务408处经由网络通信(例如,通信412B可被发送给基于地点的服务408)而与移动设备402上的本地缓存器或者中央参考数据库对比。基于地点的服务408可使用这些唯一签名来估计具有m米(例如,约为20米)半径的第一地理圆形的中心的经度和纬度。
[0071] 在一些实现方式中,基于地点的服务408包括由Boston,MA的SKYHOOK WIRELESS公司提供的定位服务和参考数据库信息。
[0072] 移动设备402可从蜂窝塔406接收通信414A。蜂窝通信414A例如可包括标识蜂窝塔406的信息。在一些实现方式中,蜂窝通信414A还可包括蜂窝塔406的经度和纬度。蜂窝塔406的标识信息和/或经度和纬度可在通信414B中被发送给基于地点的服务410。
基于地点的服务410可使用在通信414B中所包含的信息来估计移动设备402的位置,并估计所估计的位置的准确性。因此,例如,基于地点的服务410可估计移动设备402当前所在的第二地理区域。在一些实现方式中,第二地理区域在地图上被表示为圆形区域,该圆形区域以所估计的位置为中心并且半径等于所估计的位置的准确性。在一些其他实现方式中,仅举少数示例,第二地理区域可在地图上以方形或矩形状的包围区域来表示。
[0073] 在一些实现方式中,移动设备402的位置和地理区域可利用“源小区(cell of origin)”定位技术来估计。在一些其他实现方式中,第二地理区域可通过蜂窝塔三角测量法来确定。
[0074] 第一和第二地理区域可分别通过通信416和418而被发送到移动设备402。如果这些地理区域中的一个地理区域整个地被包含在另一个地理区域内(包括这些地理区域的边界发生接触、但这一个地理区域的没有其他部分在另一个地理区域之外的情况),则移动设备402可例如在触敏显示器102上呈现包括对所述一个地理区域的指示的地图示图。例如,如果第一地理区域完全地被包含在第二地理区域内,则可以呈现包括对第一地理区域的指示的地图示图。如果第一地理区域没有完全地被包含在第二地理区域内,则移动设备402可呈现包括对第二地理区域的指示的地图示图。例如,如果用于估计第一地理区域的技术、系统或服务具有比用于估计第二地理区域的技术、系统或服务更高水平的准确性或精确性细节,并且基于第一地理区域整个地处于第二地理区域内而确定第一地理区域更准确或更精确,则移动设备402可使用第一地理区域。技术的细节水平例如可通过存储在移动设备402中的优先级表来确定。
[0075] 在另一示例中,第一地理区域可使用接入点404来估计,并且第二地理区域可使用蜂窝塔406来估计。在此示例中,接入点404相对于其原来的地点发生过移动,接入点404的经度和纬度坐标(基于地点的服务408知道它们)是不正确的并且移动设备402实际上并不位于第一地理区域中。蜂窝塔406提供正确的基于地点的数据并且移动设备402位于第二地理区域内。在这样的情形中,第一和第二地理区域不交叠,所以移动设备402将显示指示第二地理区域的地图示图。移动设备402可被用于确定第一和第二地理区域的准确性,或者可以使用外部的一个或多个服务器。
[0076] 基于地点的服务408和基于地点的服务410可在同一设备上运行或者在分开的设备上运行。例如,基于地点的服务408和410可在通过网络(例如WAN 214)而与移动设备100通信的服务器上运行。所述服务器可以是分开的服务器或者是同一服务器。替代地,基于地点的服务408和410可在移动设备402上运行。
[0077] 替代接入点404和蜂窝塔406或者在接入点404和蜂窝塔406以外,移动设备402例如可连接到另外的设备或服务(未示出)以便于基于地点的服务。仅举几例,这样的设备或服务包括蓝牙设备、GPS、无线电或TV塔或者蜂窝网格。例如,移动设备402可利用蓝牙通信设备188(图1)连接到对等设备并从其他设备和/或有蓝牙能力的设备接收基于地点的信息。在一些实现方式中,移动设备402可利用其他技术(例如GPS)来确定和估计其位置和/或地理区域。在一些实现方式中,如果利用其他技术确定或估计的地理区域整个地被包含在利用基于地点的服务408或410(例如,Wi-Fi或蜂窝定位技术)所估计的地理区域内、并且如果根据在移动设备402中所存储的优先级表得知这些其他技术更准确或更精确,则利用其他技术中的任一种所确定或估计的地理区域可替代利用基于地点的服务408或410估计的地理区域而被使用(例如,被显示)。
[0078] 示例设备定制应用
[0079] 图5是用于定制设备的示例软件应用的框图。设备定制应用500包括用于获得(例如,标识)设备的地理位置数据和时间数据的标识引擎510、用于选择模式(例如,操作模式、通信模式)的定制引擎520、用于把设备向通信设备或媒介激活(例如,连接)的通信引擎530、用于设置偏好(这些偏好例如与对操作模式或通信模式的选择相关联)的偏好引擎540、用于处理用户和设备之间的交互的互动引擎550、以及用于例如向用户呈现系统对象的呈现引擎560。
[0080] 引擎510、520、530、540、550和560可以以可通信方式彼此耦合到其中一个或多个。虽然上述引擎被描述为是分开的或不同的,但是这些引擎中的一个或多个可被组合在单个处理或例程中。在此提供的包括对于不同功能的职责分隔的功能描述是示例性的。可以按需或者根据设计性能来做出对于功能职责的其他分组或其他分割。
[0081] 标识引擎510可包括位置模块512和时间模块514。位置模块512可获得设备的地理位置数据。地理位置数据可以标识设备(例如,诸如移动电话之类的移动设备)的地理位置。位置模块512可处理地理位置数据以标识地理位置。例如,位置模块512可利用参考图4而描述的系统和技术来确定或估计设备的地理地点或地理区域。在一些实现方式中,位置模块512还可处理地理位置数据以标识设备的朝向或方向。尤其是,位置模块512可与设备内部或外部的的服务、设备和技术(例如用于基于地点的服务的蓝牙设备、GPS、无线电或TV塔、或蜂窝网格)进行通信,以获得地理位置数据。
[0082] 时间模块514可获得时间数据。时间数据可包括设备的操作(例如,被选择以在设备上进行激活的操作模式)的历史。尤其是,此历史中的每个操作模式可标识设备在该地理位置处所使用的通信媒介。
[0083] 在一些实现方式中,此历史可针对特定时间段(例如,一天中的或跨越若干天)来指定。例如,被选择以在设备上进行激活的每种操作模式可与时间戳(timestamp)相关联。时间戳可以标识操作模式被选择以在设备上进行激活时在一天中的具体时刻。此历史可包括下述操作模式:这些操作模式与一天内的具体时间段内的时间戳相关联并被选择以在设备上进行激活。从先前在与当前时间相对应的、一天中的特定时间段选择以进行激活的操作模式的历史中进行选择可提高成功的或有效的连接(例如,快速连接)的可能性。
[0084] 在一些实现方式中,此历史还可由下述操作模式来定义:这些操作模式与大于阈值的连接成功置信值相关联。连接成功置信值例如可通过成功连接相对于连接尝试所占的比率来定义,从而表示连接成功的可能性。在另一示例中,连接成功置信值可通过与地理位置相关联的一个或多个信号强度值来定义。尤其是,信号强度值可以是通过(一个或多个)无线通信子系统324和其他传感器316例如针对预定时间段(例如,在当前连接尝试之前的预定数目的小时、星期或月中)计算得到的平均信号强度。
[0085] 其他实现方式也是可行的。例如,连接成功置信值可由利用特定通信媒介或设备的全部设备的成功连接相对于连接尝试所占的比率来定义。作为另一示例,信号强度值可以是利用特定通信媒介或设备的所有设备或者利用特定通信媒介或设备的所有相同型号的设备(例如利用相同固件版本的相同硬件型号)的平均信号强度。
[0086] 在一些实现方式中,操作模式的选择可以基于设备的位置和信号强度值二者。例如,如果在特定地点针对两种模式的信号强度值大体相似(例如,与两种模式相关联的通信媒介的信号强度彼此在+/-2dB内),则可以选择与设备所朝向的地点相关联的模式。作为另一示例,如果在特定地点针对两种模式的信号强度都高于阈值,则可选择与设备所朝向的地点相关联的模式。
[0087] 在一些实现方式中,时间数据可标识处于该地理位置时在一天中的时刻(例如,4:30PM PDT)。按照与如上所述类似的方式,可基于处于该地理位置时在一天中的时刻来选择操作模式。
[0088] 设备的地理位置数据(在一些实现方式中,还有时间数据)可被定制引擎520用于选择设备的操作模式,如下面更详细的描述。在一些实现方式中,该操作模式可以标识通信媒介或通信设备。例如,基于设备的地理位置和在一天中的时刻,定制引擎520可以选择使用Wi-Fi或3G蜂窝网络的操作模式。具体地,如果由标识引擎510的位置模块512和时间模块时间模块514所标识的、在3G数据使用的高峰时段用户处于家中,则定制引擎520可选择与使用Wi-Fi网络相对应的操作模式,并且通信引擎530可将此选择发送给(一个或多个)通信子系统324。
[0089] 其他实现方式也是可行的。例如,定制引擎520可选择诸如接入点之类的通信设备。作为另一示例,定制引擎520可被用于对设备的操作的其他方面进行修改,例如,界面定制(例如,图形定制和音频定制)、软件应用、推送更新、媒体(例如音频的、视频的、文本的)、电力管理、安全性设定以及其他设备设定和配置。
[0090] 如上所述,通信引擎530可例如基于通过定制引擎520选择的操作模式而将设备连接到另一通信设备或媒介。
[0091] 另外,通信引擎530可获得在通信媒介上发送或接收的信号的信号强度。例如,信号强度值可由(一个或多个)无线通信子系统324和(一个或多个)其他传感器316计算,并且通信引擎530可从(一个或多个)无线通信子系统324和(一个或多个)其他传感器316获得信号强度值。作为另一示例,(一个或多个)无线通信子系统324和(一个或多个)其他传感器316可生成信号强度数据,并且通信引擎530可从信号强度数据标识信号强度值。其他实现方式也是可行的。例如,通信引擎530可检测信号的信号强度并计算信号强度值。
[0092] 通信引擎530可监视在设备处发送或接收的信号的信号强度值。当信号强度第一次被标识(被检测)为小于阈值信号强度值时,设备的地理位置(例如,设备的当前地理位置)可被存储作为目标位置。存储此目标位置可有利地用于对能够发送或接收例如无线信号的移动对象进行定位。
[0093] 例如,一些机动车装配有蓝牙通信设备。一般,蓝牙通信设备具有大约10到100米的传输范围。因此,如果阈值信号强度值被设定为零(例如,没有检测到的信号),则所存储的目标位置可帮助用户标识出离机动车10到100米内的位置。阈值信号强度值可被设定得较高(例如,要求更大的信号强度),以提高标识出的机动车的地点的位置的精确性和准确性。
[0094] 其他实现方式也是可行的。例如,本系统和技术可以类似的方式被用于定位能够发送无线信号的其他移动设备,诸如但不限于膝上型计算机。作为另一示例,当定制引擎520切换到另一操作模式(例如,另一通信媒介或设备)时,地理位置可被存储作为目标位置。
[0095] 偏好引擎540可被用于基于设备的地理位置向用户询问在选择操作模式或通信模式时使用的偏好。偏好引擎540还可被用于将偏好设定为默认值、修改已经设定的偏好、以及向用户呈现偏好选择。偏好例如可涉及针对特定地理位置或一天中的特定时刻而指定特定操作模式或通信模式、对针对特定地理位置或一天中的特定时刻的操作模式或通信模式区分优先级、设定连接成功置信值、设定信号强度阈值、对于前述任何偏好的存储器设定、以及提供关于设备定制应用500如何选择操作模式或通信模式的修改的其他偏好。例如,用户可针对地理位置指定关于一个或多个通信媒介(例如Wi-Fi网络)的可编辑列表。作为另一示例,用户可针对地理位置指定关于一个或多个通信设备(例如,接入点)的可编辑列表。
[0096] 其他实现方式也是可行的。在一些实现方式中,可基于其他环境因素(context)而选择特定协议或操作模式以供用在设备上。例如,可基于地理位置数据和设备被连接到的有线子系统的类型而选择不同的操作模式。作为具体示例,如果移动设备(例如,通过扩展坞)被连接到用户的办公室的有线通信子系统,则可选择不使用加密的操作模式。另外,如果移动设备连接到用户家中的有线通信子系统,则可选择使用加密的操作模式。在这些和其他实现方式中,另外的环境因素以及该另外的环境因素对操作模式的影响例如可通过用户偏好来预先确定。
[0097] 互动引擎550例如可通过存储信息(该信息描述用户在设备处提供的输入的各种类型)来处理用户和设备之间的交互。互动引擎550可使用如此存储的信息来确定响应于用户与设备的交互而希望什么样的动作以及用于执行所希望的动作。例如,互动引擎550可接收下述输入:该输入指定了要由偏好引擎540处理的偏好。作为另一示例,互动引擎550可用来隐藏和显示用于提供偏好的界面元素(例如,视窗)。作为另一示例,互动引擎
550可接收下述输入(例如,手势):该输入指定了对显示了目标位置(例如,机动车的地点)的地图的导航。
[0098] 呈现引擎560可与GUI指令356交互,例如以便呈现用于提供偏好的界面元素。另外,呈现引擎560还可与设备定制应用500外部的其他软件组件(例如,其他软件指令372中的地图应用)交互,从而例如在地图中呈现地理位置和目标位置。
[0099] 示例界面
[0100] 图6图示出用于指定偏好的示例用户界面。移动设备100的触敏显示器102示出用户可编辑列表600的示例,该用户可编辑列表提供用户可指定或编辑的偏好。具体地,用户可编辑列表600是“最喜爱(favorite)模式”的最喜爱列表。在本示例中,由不同类型的通信媒介602、604、606、608、612和614和不同类型的通信设备610和616来指定通信模式。
[0101] 在一些实现方式中,用户可编辑列表600可按照优先级顺序显示偏好,并且用户还可指定优先级。例如,用户可使用手势在触敏显示器102上将通信模式拖放为按照从上到下的优先级顺序。其他实现方式也是可行的。
[0102] 用于指定偏好的用户界面包括其他界面元素620、630、640和650,分别用于指定地理位置、时间、阈值信号强度值(“阈值SSV”)以及连接成功置信值的阈值(“阈值CSCV”)。在本示例中,用户可编辑列表600与特定地理位置“家”(如通过界面元素620指定的)和时间“非高峰时间”(如通过界面元素630指定的)有关。与地理位置和时间的其他组合有关的其他用户可编辑列表也可存储在存储器中。另外,其他实现方式也是可行的。例如,界面元素630中的时间可利用一天中的特定时间范围(例如,9:00PM到11:00PM)或者天的范围(例如星期一到星期五)来指定。
[0103] 图7图示出示出目标位置的示例地图显示700。具体地,移动设备100的触敏显示器102示出地图应用的地图显示700。地图显示700示出由设备定制应用500标识出的目标位置(例如,用户的汽车的地点)处的地标702,如参考通信引擎530描述的。在一些实现方式中,用户可触摸此地标702,图形对象706(例如、气球、泡泡、窗口、窗格)出现以示出由地标702表示的目标位置的地址或其他信息。
[0104] 设备定制的示例处理
[0105] 基于空间和时间
[0106] 图8是用于对设备进行定制的示例处理800的流程图。处理800包括获得设备的地理位置数据(810)。例如,标识引擎510的位置模块512可获得设备的地理位置数据,地理位置数据例如标识设备的地理位置。处理800还包括获得与地理位置数据相关的时间数据(820)。例如,标识引擎510的时间模块514可获得与地理位置数据相关的时间数据,例如,在该地理位置时在一天中的时刻。处理800还包括基于地理位置数据和时间数据选择操作模式以在设备上进行激活(830)。例如,定制引擎520可基于地理位置数据和时间数据选择操作模式(例如,指定通信媒介的操作模式)以在设备上激活。
[0107] 基于用户偏好
[0108] 图9是用于定制设备的另一示例处理900的流程图。处理900包括获得设备的地理位置数据(910)。例如,标识引擎510的位置模块512可获得设备的地理位置数据,地理位置数据例如标识设备的地理位置。处理900还包括获得预定用户偏好(920),该偏好指定了针对由地理位置数据标识的地理位置的一种或多种通信模式。例如,偏好引擎540可获得预定用户偏好。处理900还包括选择所述一种或多种通信模式中的一种以在设备上进行激活(930)。例如,定制引擎520可选择所述一种或多种通信模式中的一种以在设备上激活。
[0109] 用于示出目标位置
[0110] 图10是可用于跟踪目标位置的示例处理1000的流程图。处理1000包括获得设备的地理位置数据(1010),地理位置数据标示设备的地理位置。例如,标识引擎510的位置模块512可获得设备的地理位置数据,该数据标识了设备的地理位置。处理1000还包括获得设备在该地理位置处通过通信媒介发送或接收的信号的信号强度(1020)。例如,通信引擎530可获得此信号强度。本处理还包括跟踪该地理位置处的信号强度(1030)。例如,通信引擎530也可跟踪信号强度。在一些实现方式中,这种跟踪操作包括:当信号强度第一次被标识为小于阈值信号强度值时,将地理位置存储作为目标位置,以供在设备上显示。例如,定制引擎520在选择新的操作模式时,可将该地理位置存储作为目标位置。
[0111] 所描述的特征可由数字电子电路实现,或以计算机硬件、固件、软件或者它们的组合的形式来实现。这些特征可以由信息载体(例如机器可读存储设备)中有形地嵌入的、供可编程处理器执行的计算机程序产品实现;方法步骤可通过可编程处理器通过对输入数据进行操作并生成输出来执行指令程序而被执行,以实现上述实现方式的功能。
[0112] 有利地,所描述的特征可实现在可在包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备的可编程系统上执行的一个或多个计算机程序中,其中,所述至少一个可编程处理器被耦合以从数据存储系统接收数据和指令以及向数据存储系统发送数据和指令。计算机程序是可直接或间接用在计算中以执行一定的动作或引起一定的结果的指令集。计算机程序可以任何形式的编程语言(包括编译或解释语言,例如面向对象的C、Java)来编写,并且其可以任何形式来布置,包括作为单独的程序或作为模块、组件、子例程或适用于在计算环境中使用的其他单元。
[0113] 作为示例,用于执行指令程序的合适的处理器包括任何种类的计算机的通用的和专用的微处理器并且是唯一的处理器或多个处理器或核中的一个。一般,处理器将从只读存储器或随机存取存储器或者二者接收指令和数据。计算机的重要元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般,计算机还将包括或者可操作地耦合到用于存储数据文件的一个或多个海量存储设备;这样的设备包括磁盘,诸如内部硬盘和可移除盘;磁光盘;以及光盘。适于有形地嵌入计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,示例性地包括诸如EPROM、EEPROM以及闪存之类的半导体存储器设备设备;诸如内部硬盘和可移除盘的磁盘;磁光盘;以及CD-ROm和DVD-ROM盘。处理器和存储器可以ASIC(专用集成电路)作为补充或者被结合在ASIC中。
[0114] 为了提供与用户的交互,这些特征可实现在具有用于向用户显示信息的诸如CRT(阴极射线管)或LCD(液晶显示)监视器的显示设备以及用户可用来向计算机提供输入的键盘和诸如鼠标或跟踪球之类的点选设备的计算机上。
[0115] 这些特征可实现在包括诸如数据服务器之类的后端组件,或者包括诸如应用服务器或因特网服务器之类的中间设备组件,或者包括诸如具有图形用户界面或因特网浏览器的客户端计算机之类的前端组件,或者它们的任何组合的计算机系统中。系统的这些组件可通过任何形式的数字数据通信媒介(诸如通信网络)被连接。通信网络的示例例如包括LAN、WAN以及形成因特网的计算机和网络。
[0116] 计算机系统可包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过网络交互。客户端和服务器的关系借助于在各自计算机上运行的并且彼此具有客户端-服务器关系的计算机程序而发生。
[0117] 大量实现方式已被描述。然而,将理解,可作出多种修改。例如,一个或多个实现方式的要素可被组合、删除、修改或由其他实现方式补充。作为另一示例,在图中所示出的逻辑流程不需要所示的特定顺序或时间顺序来实现所希望的结果。另外,可向所描述的流程提供其他步骤,或者可从所描述的流程删除步骤,并且可向所描述的系统添加其他组件或者从所描述的系统移除组件。例如,引擎510、520、530、540、550和560不一定要执行上述实现方式中施加于该引擎的全部功能或其中的任何功能,并且施加于一个引擎的全部或部分功能可以由另一引擎、另一额外的模块来执行,或者根本不执行。因此,其他实现方式也落在所附权利要求的范围内。