CN103189841A - 结合附件的应用启动 - Google Patents

结合附件的应用启动 Download PDF

Info

Publication number
CN103189841A
CN103189841A CN2011800524143A CN201180052414A CN103189841A CN 103189841 A CN103189841 A CN 103189841A CN 2011800524143 A CN2011800524143 A CN 2011800524143A CN 201180052414 A CN201180052414 A CN 201180052414A CN 103189841 A CN103189841 A CN 103189841A
Authority
CN
China
Prior art keywords
computing device
mobile computing
application
annex
message
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.)
Pending
Application number
CN2011800524143A
Other languages
English (en)
Inventor
S·图普拉尼
P·霍尔登
E·C·舒尔波特
T·阿尔西娜
S·福斯塔
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN103189841A publication Critical patent/CN103189841A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明的实施例提供了响应来自附件的启动请求而启动应用的系统与方法。有些实施例中,移动计算设备可以确定它是否处于允许应用启动的状态和/或可以确定启动命令中所请求的应用或应用类型是否可用于启动。响应该请求,如果移动计算设备能够做到的话,移动计算设备可以启动该应用。移动计算设备还可以向附件发送指示应用可以被启动的肯定确认消息。开通通信会话消息也可以发送到附件。响应该消息,附件可以开通通信会话并且与应用互操作。

Description

结合附件的应用启动
对相关申请的交叉引用
本申请根据美国法典35条119(e)条而要求享有2010年9月30日提交的标题为“APPLICATION AUTO-LAUNCH INCONJUNCTION WITH AN ACCESSORY”的美国临时申请61/388,560(代理人案号20750P-017400US)的利益和优先权,该申请的全部内容在此引入作为参考。
技术领域
本公开总体上涉及附件与移动计算设备之间的通信,尤其涉及在移动计算设备上启动应用的附件请求。
背景技术
移动计算设备已经变得无处不在。各个公司都造出了移动计算设备,例如iPhoneTM、iPod TouchTM、iPadTM、各种
Figure BDA00003121421600011
设备及与Google AndroidTM平台兼容的智能电话,这些仅是举了几个例子。移动计算设备常常包括网络浏览器、文字处理器、电子邮件应用、地图、电话服务、游戏、音频应用、视频应用等。而且,还创建了供移动计算设备使用的附件。有些附件可以创建成与移动计算设备上执行的一个具体应用或者一组应用互相操作。
发明内容
本发明的实施例提供了用于在与附件通信耦合的移动计算设备上启动应用的技术。在一组实施例中,附件可以把命令发送到移动计算设备,用于在移动计算设备上启动应用。作为响应,移动计算设备可以向附件发送确认消息,指示该应用可以被启动。然后可以打开一个通信会话,以方便附件与移动计算设备之间的通信。
以下具体描述连同附图一起将提供对本发明的本质与优点的更好理解。
附图说明
图1示出了根据本发明一些实施例、利用有线和无线通信信道与两个附件耦合的移动计算设备。
图2示出了根据本发明一种实施例耦合到一起的移动计算设备和附件的框图。
图3是根据本发明一些实施例、在移动计算设备上发生的用于启动应用的过程流程图。
图4是根据本发明一些实施例的附件请求在移动计算设备启动应用的过程流程图。
图5是根据本发明一些实施例的在移动计算设备上发生的用于启动应用的过程的另一个流程图。
图6是根据本发明一些实施例的附件请求在移动计算设备启动应用的过程的另一个流程图。
图7是根据本发明一些实施例的在移动计算设备上发生的用于启动应用的过程的另一个流程图。
图8是根据本发明一些实施例的附件请求在移动计算设备启动应用的过程的另一个流程图。
具体实施方式
本发明的各种实施例针对可以被附件用于请求移动计算设备执行或启动应用的过程与系统。例如,附件可以开发成与移动计算设备执行的具体应用一起工作。不等待用户在移动计算设备上打开和/或执行该应用,而是附件可以向移动计算设备发送请求移动计算设备执行该应用的命令。有些情况下,移动计算设备可以控制是否启动该应用、确定移动计算设备是否处于可以允许新应用启动的状态,等等。因而,在有些实施例中,附件可以请求启动应用,而且该请求会被移动计算设备拒绝或批准。移动计算设备可以控制何时及怎样处理该请求。
在有些实施例中,发送到移动计算设备的启动命令可以包括指示具体应用或应用类型的信息。然后,基于这个信息,移动计算设备可以确定启动哪些应用。在一组实施例中,响应该请求,附件可以等待通信信道的打开。一旦通信信道开通,应用和附件就可以互操作。
在有些实施例中,附件可以从移动计算设备请求应用信息。例如,这可以在初始化阶段中进行,其中可以交换设备能力。作为响应,移动计算设备可以发送可用应用的列表。利用这个列表,附件可以发送包括位掩码的启动请求,这个位掩码对应于可用应用中的每一个。可以声明所述位掩码中的一位,以指示应用列表中被启动的对应应用。
启动命令可以包括多个数据元素–例如,具体应用的名称;应用的类型(type);应用的类属(genus);附件的名称,可以用于在查找表中查找应用的类型;位掩码,指示要启动的一类应用或者一个具体应用;将用于通信的通信协议;或者发出请求的附件的标识符;对应于应用类型的代码;或者可以识别应用或应用类型的任何其它信息。
因为移动计算设备控制启动哪些应用和不启动哪些应用,所以移动计算设备的附件控制可以得到调节。但是,虽然有这种控制,附件仍然可以请求移动计算设备启动应用。因而,本发明的实施例在应用启动的总体控制与在移动计算设备启动应用的附件灵活性之间调和折中。
移动计算设备与附件
图1示出与附件121和附件124耦合的移动计算设备102。电缆111用于把移动计算设备102与附件124耦合。电缆111可以包括与移动计算设备102连接的连接器108和与附件124连接的连接器110。附件121与移动计算设备102无线耦合。
移动计算设备可以是任何类型的移动计算和/或通信设备,没有任何限制。例如,iPod TouchTM、iPhoneTM、iPadTM、Android兼容的设备和/或Blackberry设备都可以使用。而且,移动计算设备102可以提供媒体播放器能力、联网、网络浏览、电子邮件、文字处理、数据存储、应用执行和/或任何其它计算或通信功能。
附件113可以是能够与移动计算设备102通信的任何设备,例如像外部扬声器系统;外部视频设备;多媒体设备;消费者电子设备;测试仪器;家用电器(例如,冰箱、咖啡机、环境控制系统或者洗碗机);健身器材;安全系统;家庭或办公室自动化系统;照相机;用户输入设备(例如,键盘、鼠标、游戏控制器);测试设备;医疗设备(例如,葡萄糖监视器或者胰岛素监视器);销售点设备;汽车;汽车附件(例如,汽车音响系统或者汽车导航系统);无线电(例如,FM、AM和/或卫星);飞机、公共汽车、火车或者其它大型交通工具上的娱乐控制台;等等。可以与移动计算设备结合使用的任何类型的设备都可以用作附件设备。
图2示出了根据一种实施例与附件202(例如,实现附件121或者附件124)耦合的移动计算设备200(例如,实现图1的移动计算设备102)的框图。移动计算设备200可以包括处理器230、存储设备225、用户接口(UI)235、网络接口236和附件输入/输出(I/O)接口205。
处理器230可以控制移动计算设备200的操作,其中处理器230可以实现为一个或多个集成电路(包括例如常规的微处理器或微控制器)。例如,响应由用户接口235提供的用户输入信号,处理器230可以执行各种任务,例如选择并播放可以存储在存储设备225中的媒体资产;利用网络接口236访问各种网络(例如,移动电话网络、互联网、局域网等),以便发送和/或检索数据;执行驻留在存储设备225上的各种应用程序(App)226等等。处理器230还可以管理经附件I/O接口205与附件的通信。
用户接口235可以包括例如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、键区、麦克风等的输入控制及例如显示屏、指示灯、扬声器、耳机插孔等的输出设备,还有配套的电子产品(例如,数模或模数转换器、信号处理器等)。用户可以操作用户接口235的各种输入控制,来调用移动计算设备200的功能,而且还可以经用户接口235看和/或听来自移动计算设备200的输出。
存储设备225可以例如利用磁盘、闪存存储器或者任何其它非易失性存储介质来实现。存储设备225可以存储可以由处理器230执行的应用程序226、系统程序和其它程序代码(未明确示出),以及例如可以管理与各种附件的通信的协议表227的各种数据。在有些实施例中,存储设备225还可以存储可以由移动通信设备200播放的例如音频、视频、静止图像等媒体资产,连同描述这些媒体资产的元数据(例如,资产名称、艺术家、标题、流派等)、播放列表(可以顺序或者以随机次序播放的资产列表)等一起。存储设备225还可以存储任何其它类型的信息,例如关于用户的联系人的信息(名字、地址、电话号码等);计划的约会和活动;笔记;和/或其它个人信息。
应用程序(本文中也称为“应用”或“App”)226可以包括可以由处理器230执行的任何程序。例如,在一组实施例中,应用可以是包括可以与用户交互的用户接口的程序。在其它实施例中,应用可以是在后台运行的过程,例如守护进程。在有些实施例中,某些应用可以由其制造商安装在移动计算设备200上,而其它应用可以由用户安装。应用程序的例子可以包括视频游戏程序、个人信息管理程序、用于播放媒体资产和/或导航媒体资产数据库的程序、用于控制发出和/或接收呼叫的电话接口的程序,等等。某些应用程序226可以提供与附件202的通信和/或对其的控制,某些应用程序226可以对来自附件202的控制信号或其它输入作出响应;以下对例子进行描述。
网络接口236可以提供到一个或多个通信网络的接口。例如,网络接口236可以结合射频(FM)收发器及用于经例如移动电话网络的移动通信网络通信的合适部件。附加地或者作为代替,网络接口236可以结合到互联网的无线连接(例如,WiFi收发器、3G收发器等)、到个人区域网络的无线连接(例如,蓝牙网络)或者到任何其它网络的无线连接。在其它实施例中,可以提供有线网络连接(例如,以太网)。在有些实施例中,相同的硬件可以用于支持到多个网络的连接;因而,网络接口236可以包括模数和/或数模电路系统、基带处理部件(例如,编解码器、信道估计器等)、调制器、解调器、振荡器、放大器、发送器、接收器、收发器、内部和/或外部天线,等等。在有些实施例中,与网络连接关联的有些操作可以完全地或者部分地作为在处理器230上执行的程序(例如,编码、解码和/或数字域中的其它处理)实现,或者可以提供专用的数字信号处理器。
附件I/O接口205可以包括配置成在移动计算设备200与附件202之间携带各种信号的多条信号路径。在一种实施例中,附件I/O接口205包括30引脚的连接器,这对应于在由Apple公司制造并销售的
Figure BDA00003121421600061
和iPhoneTM产品使用的连接器;其它连接器也可以使用。可选地或者附加地,附件I/O接口205可以包括无线接口(例如,蓝牙等)。
在有些实施例中,移动计算设备200还可以使用附件I/O接口205与执行资产管理程序的主机(未示出)通信,该资产管理程序可以为移动计算设备提供媒体和/或应用(例如,或微软的应用商店)。资产管理程序可以使用户能够把媒体资产和/或应用添加到移动计算设备和/或从移动计算设备200移除媒体资产。用户可以更新与移动计算设备200上的媒体资产关联的元数据。在有些实施例中,用户还可以与资产管理程序交互,来创建和更新播放列表和/或应用及其它文档。在一种实施例中,主机维护媒体资产和/或应用的主数据库并且可以例如通过互联网访问其它数据库(包括关联的元数据和播放列表),而且,只要移动计算设备200连接到主机,资产管理程序就自动地同步主数据库与在移动计算设备200的存储设备225所维护的数据库。在其它实施例中,移动计算设备200可以使用网络接口236与主机通信和/或直接与各种其它服务器通信,以便获取应用、媒体资产和/或其它数据。
附件202可以包括控制器260、用户接口255、移动计算设备I/O接口250、存储器265和附件专用硬件275。
移动计算设备I/O接口250可以包括配置成在附件202与移动计算设备200之间携带各种信号的多条信号路径。在一种实施例中,移动计算设备I/O接口250可以包括适于与Apple公司制造并销售的iPadTM
Figure BDA00003121421600071
和iPhoneTM产品上使用的连接器(例如,30引脚的连接器)配对的连接器。其它连接器也可以使用;例如,移动计算设备I/O接口250可以包括标准的USB或火线(FireWire)连接器等。可选地或者附加地,移动计算设备I/O接口250可以包括无线接口(例如蓝牙等)。
控制器260可以包括例如执行程序代码的微处理器或微控制器,以便执行各种功能,例如数字音频解码、模拟或数字音频和/或视频处理、用户输入的处理、附件功能性的控制等。控制器260还可以管理经移动计算设备I/O接口250与移动计算设备的通信。
用户接口255可以包括例如触控板、触摸屏、滚轮、点击轮、拨号盘、按钮、键区、麦克风、探针等的输入控制,以及例如显示屏、指示灯、扬声器、耳机插孔等的输出设备,还有配套的电子产品(例如,数模或模数转换器、信号处理器等)。用户可以操作用户接口255的各种输入控制来调用附件202的功能,而且还可以经用户接口255看和/或听来自附件202的输出。此外,在有些实施例中,用户可以经附件用户接口255操作移动计算设备200(或者在其上执行的应用)。
存储设备265可以利用可以存储用于控制器260的程序代码和/或数据的任何类型的存储器、磁盘或者其它存储介质来实现。例如,存储器265可以存储附件专用软件280,其可以提供让控制器260与附件专用硬件275和/或用户接口255交互的指令。在有些实施例中,附件202可以从移动计算设备200接收信息(例如,用户输入、元数据和/或应用数据),这种信息也可以存储在存储器265中。
附件专用硬件275可以代表启用附件202的期望功能所需的任何硬件。例如,附件专用硬件275可以包括一个或多个数据收集设备,例如任何类型的传感器或者仪表。在有些实施例中,附件专用硬件275可以包括产生代表电特性(例如,电阻、电压差等)的数据的电气仪表;检测光和/或光图案的光传感器;运动传感器;温度传感器;湿度传感器;压力传感器;响应于选定化学物质(例如,像一氧化碳的可能有毒气体)的存在的化学传感器;等等。附件专用硬件275还可以包括一种或多种医疗设备,例如葡萄糖仪、呼吸计、心率和/或心脏功能监视器、血压监视器,等等。
在有些实施例中,包括数据收集设备的附件专用硬件275可以提供一个或多个电信号(例如,电压、电阻和/或电流),其对应于或者代表物理数据。可以使用多种形式的模拟和/或数字信号。附件专用硬件275还可以包括信号处理部件,其在把信号发送到控制器260之前处理该信号;在有些实施例中,附件专用硬件275可以把电信号直接发送到控制器260,控制器260可以处理该信号。另外,例如,利用以下所述的应用协议,代表由附件专用硬件275收集的数据的信号可以(经过或者没有经过控制器260的处理)发送到在移动计算设备200执行的应用;因而,在移动计算设备200上执行的应用也可以处理利用附件专用硬件275收集的数据。
在有些实施例中,附件专用硬件275可以包括一个或多个计算机可控的设备。计算机可控的设备的例子包括电动机、致动器、灯、照相机、阀门、扬声器、显示屏、打印机和/或可以由控制器260控制的任何其它装备。在有些实施例中,在移动计算设备200上执行的应用可以把控制信号发送到附件202,控制器260可以响应该控制信号而操作附件专用硬件275。
在有些实施例中,附件专用硬件275可以包括用户接口255的部件。在有些实施例中,附件专用硬件275可以包括网络和/或通信接口。在其它实施例中,附件专用硬件275可以包括到个人区域网络的通信接口。还有其它实施例中,附件专用硬件275可以包括电话接口、GSM、CDMA和/或其它语音和/或数据网络接口。附件专用硬件275可以包含任何硬件部件,对其期望与移动计算和/或通信设备的互操作性。
在此所述的系统配置与部件是说明性的而且各种变化与修改都是可能的。移动计算设备和/或附件可能具有未在此具体描述的其它能力。尽管附件202和移动计算设备200在这里是参考特定的块来描述的,但是应当理解,这些块是为了方便描述而定义的,而不是要暗示部件部分的特定物理布置。另外,这些块不需要对应于物理上不同的部件。
移动计算设备200的附件I/O接口205和附件202的移动计算设备I/O接口250允许移动计算设备200连接到附件202并且随后从附件202断开。如在此所使用的,每当附件I/O205与移动计算设备I/O接口250之间的通信信道开通时,移动计算设备200和附件202就“连接”,每当该通信信道关闭时就“断开”。连接可以通过物理附连(例如,在移动计算设备200与附件202各自的配对连接器之间)、通过例如电缆的间接附连或者通过建立无线通信信道来实现。类似地,断开可以通过物理分离、断开电缆、给附件202或移动计算设备200断电或者关闭无线通信信道来实现。因而,可以使用多种通信信道,包括例如通用串行总线(“USB”)、火线(IEEE1394标准)或通用异步接收器/发送器(“UART”)的有线信道,或者例如蓝牙(蓝牙SIG开发并且以商标
Figure BDA00003121421600091
 许可的一种短程无线通信标准)、WiFi(遵守IEEE802.11系列标准中的任意一个)、无线个人区域网络、红外线等的无线信道。在有些实施例中,通信可以同时利用有线和无线信道发生。在有些实施例中,移动计算设备与附件之间的多个通信信道可以同时打开,或者一个移动计算设备可以同时连接到多个附件,每个附件使用不同的通信信道。
不考虑特定的通信信道,只要移动计算设备200和附件202彼此连接,设备就可以通过交换命令与数据来通信,如由附件通信协议所指定的。附件通信协议可以定义在移动计算设备200与附件202之间发送消息的格式。例如,附件通信协议可以指定每个消息在包中发送,包具有头、有效载荷和/或尾。头可以提供基本信息,例如起始指示符、包长度和由接收方处理的命令,而有效载荷提供与命令关联的任何数据;所关联的数据量对于不同的命令可以不同,有些命令可以提供变长的有效载荷。包还可以包括尾,尾可以提供例如本领域中已知的错误检测或者错误纠正码,和/或期望的其它信息。在各种实施例中,附件通信协议可以定义具体命令,以指示要由接收方采取的动作;发信号通知任务的完成、状态的改变或者错误的发生;和/或识别所关联的数据的本质。在有些实施例中,命令可以定义成使得任何特定命令都只在一个方向有效。
附件通信协议还可以指定可用于在设备之间发送信号的一条或多条物理传输链路。例如,传输链路可以是USB链路、UART链路、火线链路、蓝牙链路、WiFi链路、并行链路、串行链路等。在这个层次,附件通信协议可以指定例如起始字节、同步字节、停止字节和/或其它辅助信号。在有些实施例中,附件通信协议可以提供多条可选的传输链路;从而,单个移动计算设备可以支持经包括有线和/或无线链路的多种物理链路的通信。
附件通信协议可以定义多个“隐语(lingos)”,其中“隐语”通常是指一组可以被各类附件支持(或者不支持)的相关命令。在一种实施例中,命令可以唯一地由识别命令所属的隐语的第一字节和识别该隐语中特定命令的第二字节来识别。其它的命令结构也可以使用。不要求所有的附件(或者附件可以连接到的所有移动计算设备)都支持附件通信协议中所定义的每个隐语或者一个特定隐语的每个命令(例如,不同的设备可能使用给定隐语的不同版本或者它们可能只使用那个隐语的一些特征)。
在有些实施例中,设计成彼此互操作的每个附件202和每个移动计算设备200都支持至少一个“通用”隐语,其包括所有这些设备共用的命令。该通用隐语可以包括使得移动计算设备与附件彼此能够向对方识别它们自己并且提供关于它们各自能力的至少一些信息的命令,包括各自还支持哪些其它隐语(如果有的话)及在连接的时候各自期望使用另一方设备的哪些能力。
通用隐语还可以包括认证命令,移动计算设备可以用于验证附件所声称身份及能力(或者反之亦然),而且,如果认证不成功的话,可以阻止附件(或者移动计算设备)调用某些命令或隐语。例如,基于公钥密码术和在移动计算设备200的认证管理器中维护的数字证书的储存,移动计算设备200中的认证管理器(未示出)可以与附件202中的认证控制器(也未示出)通信,以便执行认证过程。
附件通信协议的通用隐语或另一个隐语还可以包括“隧道”命令,其允许在移动计算设备200上执行的应用226与附件202之间交换任意信息。例如,TunnelToAcc命令可以定义为可以由移动计算设备200发送到附件202。这个命令的有效载荷可以是在移动计算设备200上执行的应用226可以生成并发送到附件202的任何数据、控制信号或者其它信息。类似地,TunnelToHost命令可以定义为可以从附件202发送到移动计算设备200。这个命令的有效载荷可以是附件202可以生成并且发送到在移动计算设备200上执行的应用226的任何数据、控制信号或者其它信息。这些隧道命令可以定义成使得附件通信协议关于有效载荷内容是不可知的。以下描述用于管理通信的技术的例子,使得特定应用把数据、控制信号或者其它信息只发送到能够处理它的附件(反之亦然)。
在有些实施例中,附件可以利用应用通信协议与和位于移动计算设备的一个或多个应用关联的API通信。例如,这种通信可以使用以上所讨论的“隧道”命令。在有些实施例中,附件可以利用附件通信协议与和一个或多个应用关联的API通信。在其它实施例中,附件还可以利用附件通信协议和/或应用通信协议之一或者二者与移动计算设备操作系统通信。因而,在此所公开的实施例可以用于方便附件与移动计算设备上的应用、API和/或操作系统之间利用应用通信协议和/或附件通信协议之一或者二者的通信。
移动计算设备和附件所支持的附件通信协议可以包括各种其它隐语,例如,允许附件发送指示要调用的移动计算设备功能的命令的简单远程隐语,用于传送关于在附件上复制移动计算设备的用户接口的全部或部分的命令和数据的远程用户接口隐语(由此支持更先进的远程控制),允许用户通过操作移动计算设备来控制调节器附件(tuneraccessory)的调节器隐语,允许附件在移动计算设备上存储数据的存储隐语,等等。任何隐语或者隐语的组合或者其它命令或者命令的组都可以联系在此所述的实施例使用。
将认识到,在此所述的附件通信协议是说明性的而且变化与修改是可能的。在此所述的具体命令可以用其它命令或命令组合或者其它类型的消息与格式来代替。此外,不要求任何特定的移动通信设备或附件都支持在此所述的全部命令与操作。
移动计算设备200上执行的应用226和附件202可以交换任意数据、控制信号和/或其它信息(在此也称为“消息”)。这些消息可以关于广泛变化的场合。例如,关于用户输入事件、所检测到的外部条件、所接收到的数据或者可能在移动计算设备200发生的任何其它事件或条件的消息都可以传送到附件202。相反,关于用户输入事件、所检测到的外部条件、所接收到的数据、或者可能在附件202发生的其它事件或条件的消息都可以传送到移动计算设备200。
例如,在有些实施例中,移动计算设备200可以处理例如通过用户接口255来自用户的输入事件,例如触摸屏事件、按钮按下、滚轮事件等。移动计算设备200可以向运行在移动计算设备200上的应用、向附件202或者向二者都提供代表输入事件的数据。附件202可以把这种数据解释为用于控制例如附件专用硬件275和/或用于在控制器260进行处理的输入。例如,触摸屏数据可以由移动计算设备200收集,被应用、附件202或者二者使用;在有些实施例中,触摸屏数据可以包括代表轻击(tap)和/或运动的数据,运动例如是重击(swipe)、捏(pinch)、拖拽和其它手势。在有些实施例中,触摸屏数据可以原始数据格式(例如,代表检测到对应于手指运动的压力的位置的坐标序列)发送。在其它实施例中,触摸屏数据可以在被发送到附件之前转换成处理过的数据,例如手势事件(例如,轻击、重击或者从一个点到另一个点的拖拽、捏,等等)。在有些实施例中,原始的键盘数据可以发送到附件和/或处理后的键盘数据可以发送到附件。在有些实施例中,一些或者全部类型的用户输入数据可以利用应用和应用协议传送到附件202,例如以下所述的;在其它实施例中,不论附件通信协议支持发送特定类型的用户输入数据到什么程度,一些或者全部类型的用户输入数据可以利用附件通信协议传送。
移动计算设备200还可以把除用户输入之外的信息发送到附件202。例如,在有些实施例中,移动计算设备200可以包括除用户输入设备之外的各种传感器和/或数据收集设备;例子可以包括加速计、机械陀螺、指南针、位置确定设备(例如,全球定位系统接收器或者电话三角测量系统)、光传感器、红外线传感器、照相机、网络接口(例如,电话、WiFi、蓝牙)等等。例如,响应来自附件202的具体请求,移动计算设备200可以把这种数据中的任何一个或者全部提供给附件202。在有些实施例中,这种数据中的一些或全部可以利用应用和应用协议传送到附件202,如以下所述的;在其它实施例中,不论附件通信协议支持发送特定类型的用户输入数据到什么程度,这种数据的一些或全部可以利用附件通信协议传送。
为了方便消息的交换,附件和应用可以使用相互商定的应用协议。应用协议可以为可被交换的消息指定所有被接受的消息格式。遵守特定应用协议的设备或程序可以根据应用协议的所有被接受格式来构造它们要发送的消息,并且可以根据应用协议的所有被接受格式来解释它们接收到的消息。例如,在二进制数字通信的情况下,应用协议可以指定包括消息的位(bit)要如何被接收方解释。事实上,在有些实施例中,附件通信协议的部分可以作为特定附件和/或应用的应用协议的全部或者部分而被直接采用。
应用通信协议可以由例如应用和/或附件的开发商来开发。在有些实施例中,应用通信协议可以包括应用和/或附件专用命令、数据结构等。此外,术语“应用通信协议”和“应用协议”可以互换使用。术语“附件通信协议”、“通用通信协议”和“通用协议”也可以互换使用。
这里所述的某些实施例中,例如,利用如上所述的隧道命令,通过在遵循附件通信协议的包中封装、包裹或者包装消息,应用协议消息可以在设备之间发送。因而,可以使用附件通信协议指定的传输链路,而且应用协议没必要指定物理传输链路。
启动过程
在本发明的有些实施例中,附件可以请求移动计算设备启动具体的应用。在此描述做出这种请求的各种技术。图3根据一些实施例示出了当附件请求启动一个应用时可以由移动计算设备(在图中由MCD指示)执行的过程300的流程图。
过程300在块310开始。在块315,移动计算设备可以接收启动命令,其指示附件愿意与移动计算设备互操作的具体应用。在有些实施例中,启动命令可以是上述通用隐语的一部分或者是具体隐语的一部分。启动命令可以指定具体的应用;例如,可以使用Launch命令,该命令可以包括该具体应用的名字、指示具体应用的位掩码、对应于该具体应用的代码、与该具体应用关联的反向域名、或者可以识别该具体应用的任何其它信息。命令可以通过有线或无线信道从附件发送到移动计算设备。
在块320,过程300可以确定移动计算设备是否处于启动应用的状态。在块320,移动计算设备的各种状态可以限制所述具体应用的执行。以下例子是说明性的。作为第一个例子,如果一个应用当前在移动计算设备上执行,那么移动计算设备可能不处于允许一个应用启动的状态。有些情况下,移动计算设备的操作系统可以在另一个应用在前台执行的同时允许后台应用执行。在有些实施例中,可以通过用户接口来询问用户,选择是否允许所述应用启动。这种情况下,如果用户选择允许,那么移动计算设备就可以允许该具体应用的启动。作为另一个例子,如果另一个附件请求另一个应用的启动而且那个应用正在执行,那么移动计算设备可能不允许被请求应用的启动。作为另一个例子,在块320,可以询问用户是否允许所述具体应用被启动。这种询问可以通过例如图2的用户接口235出现。移动计算设备可以出于各种其它原因限定或拒绝应用的启动,没有任何限制。
如果移动计算设备不处于允许应用执行的状态,过程300就前进到块325。否则,过程300前进到块330。
在块330,过程300可以确定具体应用是否可用于在移动计算设备执行。例如,在存储器(例如,存储设备225)中可以维护一个查找表,该查找表包括所有可用于在移动计算设备执行的应用。例如,这个查找表可以根据应用名称、标识符、ID号、应用协议标识符或者反向域名约定来列出各个应用。例如,过程300可以比较应用识别信息(例如,具体应用的名称)与查找表中的应用信息。如果存在匹配,那么该应用就是可用的,而且过程300可以前进到块335。如果不存在匹配,过程300就前进到块325。有些实施例中,就像所有的块一样,块320和330可以互换、在单个块中组合和/或扩展成多个块。
如果移动计算设备没有准备好启动所请求的应用、或者如果所请求的应用并不可用,那么,在块325,移动计算设备可以向附件发送启动拒绝消息。这种消息可以是响应启动命令而发送的否定确认(NACK)消息或者LaunchDenied命令。NACK消息可以是商定好的否定确认消息和/或是通用隐语的一部分。例如,LaunchDenied命令可以是带有或者不带有效载荷或数据的命令。不管怎样,应用不能被移动计算设备启动的消息都可以传送到附件。有些实施例中,消息可以指定应用为什么不能被启动的原因。在块325之后,过程300在块355结束。
如果移动计算设备准备好启动所请求的应用而且该应用在移动计算设备可用,在块335中,移动计算设备可以肯定地确认该启动命令–例如,通过向附件发送确认(ACK)消息或者LaunchPermitted消息。应用可以被移动计算设备启动的消息可以传送到附件。
有些实施例中,可以发送消息说明虽然应用可以被移动计算设备启动但是不一定响应请求而启动。这种实施例中,在块340,应用可以仅仅根据移动计算设备的判断而启动。然后,在块345,移动计算设备可以向附件发送命令,在应用与附件之间建立会话。该通信会话可以由移动计算设备创建并且可以提供各种功能和/或设置。这些功能和/或设置可以由移动计算设备和附件中的任意一方或者二者用来建立通信会话。命令可以包括通信会话ID和/或通信协议信息。例如,命令可以识别要使用的应用协议和/或指示可以利用上述附件协议的隧道命令交换的消息。
在块350,附件可以利用通信会话与应用互操作。例如,消息、数据、命令等可以在应用与附件之间发送。有些实施例中,来自附件的数据可以发送到应用,通过用户接口向用户呈现。有些实施例中,用户输入、配置和/或控制信息可以从应用发送到附件。各种其它数据、消息和/或命令也可以发送。在块355,过程300可以结束。例如,当附件从移动计算设备断开时、当移动计算设备设为飞行模式时、当用户通过应用接口指示结束通信的指示时、和/或当应用关闭时,过程300可以结束。
图3从移动计算设备的角度描述了启动过程。图4从附件的角度示出了启动过程。即,该图根据本发明的一些实施例示出了附件(例如,附件202)请求在移动计算设备(例如,移动计算设备200)启动应用的过程400。过程400在块410开始。在块415,附件向移动计算设备发送启动命令。这个命令可以是以上关于图3所述的Launch命令。这种实施例中,启动命令可以指定具体应用。然后,附件可以等待来自移动计算设备的响应。有些实施例中,在超时之前,附件可以等待预定的时间段,并且,如果没有接收到响应的话就结束。
在有些实施例中,在附件与移动计算设备连接之后不久附件就可以向移动计算设备发送Launch命令。在有些实施例中,附件可以在识别、握手、认证、能力识别和/或初始化过程发生之后发送Launch命令。在其它实施例中,Launch命令可以作为能力识别过程的一部分发送。在有些实施例中,Launch命令可以响应与位于附件的用户的交互而从附件发送到移动计算设备。而且,有些附件可以响应与用户的一次交互而请求一个应用的启动、并且响应与用户的不同交互而启动另一个应用。因而,附件可以在不同条件下,例如附件与用户的交互、环境交互、网络交互、环境条件等,请求不同应用的启动。
在块420,接收到响应。这个响应可以是肯定的确认(例如,ACK)或者否定的确认(例如,NACK)。如果接收到否定的确认,过程400就在块440结束。如果接收到肯定的确认,过程400就前进到块425。尽管接收到了肯定的确认,但这种确认不一定指示应用已经启动。而且,在有些实施例中,在接收到肯定的确认之后,附件不一定开始与移动计算设备通信。
在块425,附件可以确定它是否接收到在移动计算设备执行的具体应用与该附件之间建立通信会话的命令。这个命令部分地可以指示所述具体应用已准备好与附件通信。通信会话可以为附件提供与移动计算设备通信所需的各种通信功能和/或必要信息。除其它信息之外,该命令可以包括通信会话ID和/或通信协议信息。一旦接收到开通通信命令,附件就可以开通与移动计算设备的通信会话。
如果附件还没有接收到开通通信会话命令,过程400可以移动到块430。在从附件接收到肯定确认之后经过预定时间段之后,过程400可以超时并且在块440结束。否则,过程400返回块425并且块430和425重复,直到接收到响应或者直到预定时间段过去。
如果在块425接收到了开通通信会话,过程400就前进到块435。通信会话可以根据从移动计算设备接收到的参数建立,而且在块435,两个设备可以互操作。在块440,过程400可以结束。例如,当附件从移动计算设备断开时、当移动计算设备设为飞行模式时、当用户通过应用接口指示结束通信的指示时和/或当应用关闭时,过程400可以结束。
图3和图4所述的过程从移动计算设备和附件的角度描述了具体应用的启动。图5和图6描述了类似过程,其中附件请求一种应用类型(或类属)的启动。例如,一个应用可以具有该应用的免费版、试用版、专用版和/或完整版。不请求这些具体应用中的一个,而是附件可以指定应用类型来允许移动计算设备启动这些应用中的一个;例如,可用的最高优先级版本。作为另一个例子,附件可以关于应用的创建者、应用状态或者应用级别是平等对待的。例如,附件可以请求具有具体特性的应用,例如地图、日历、音频输出、视频输出等。作为代替,附件可能能够与多个不同应用中的任何一个交互。首先转向图5,这个图示出了根据本发明的一些实施例可以响应来自附件的请求而在移动计算设备上启动应用的过程500的流程图。
过程500在块510开始。在块515,移动计算设备可以接收一种应用类型的启动命令。启动命令可以是上述通用隐语的一部分或者是具体隐语的一部分。应用类型可以包括可以由移动计算设备启动并且与附件互操作的一组应用。例如,Launch命令可以包括应用类型的名称;应用的类属;附件的名称,这可以用来在查找表中查找应用类型;与附件使用的可用协议对应的通信协议;指示附件或应用类型的位掩码;对应于应用类型的代码;或者可以识别应用类型的任何其它信息。这里所述的任何一种实施例中,反向域名约定都可以用于指示具体应用或应用类型中的任何一个。以下描述这种命名约定的例子。
在块520,过程500可以确定移动计算设备是否处于启动应用的状态。如果移动计算设备不是处于允许应用执行的状态,过程500就前进到块525。否则,过程500前进到块530。块520可以与块320类似。
在块530,过程500可以确定与该应用类型关联的应用是否可用于在移动计算设备执行。如果与该应用类型关联的应用可用,过程500就前进到块535。如果不可用,过程500就前进到块525。例如,可以在存储器(例如,存储设备225)中维护一个查找表,这个查找表包括可用于在移动计算设备执行的所有应用及每个应用的应用类型的列表。例如,这个查找表可以通过应用名称、标识符、ID号、应用类型或者反向域名约定或应用协议名称来列出各个应用。例如,过程500可以比较在启动命令中接收到的应用类型信息与查找表中列出的应用类型。如果存在匹配,应用就是可用的,而且过程500可以前进到块535。如果不存在匹配,过程500就前进到块525。在有些实施例中,块520和530可以互换、在单个块中组合和/或扩展成多个块。在有些实施例中,可以找到与启动命令中所包括的应用类型对应的多个应用。在有些实施例中,这些应用可以优先级化(例如,在查找表中),并且可以考虑启动最高优先级的应用。在有些实施例中,如果找到具有相同应用类型的多个应用,可以提示用户选择其中一个应用。
在块525,移动计算设备可以向附件发送启动拒绝消息。这种消息可以是响应启动命令的否定确认(NACK)消息或者LaunchDenied命令。NACK消息可以是商定的否定确认消息或者是通用隐语的一部分。例如,LaunchDenied命令可以是带有或者不带有效载荷或数据的命令。不管怎样,应用不能被移动计算设备启动的消息都可以传送到附件。在有些实施例中,消息都可以指定应用为什么不能启动的原因。在块525之后,过程500在块555结束。
在块535,移动计算设备可以肯定地确认启动命令;例如,通过向附件发送确认(ACK)消息或者LaunchPermitted消息。应用可以被移动计算设备启动的消息可以传送到附件。
在有些实施例中,可以传送消息来说明虽然应用可以被移动计算设备启动但是不一定响应请求而启动。在这种实施例中,在块540,应用可以仅仅根据移动计算设备自己的裁量来启动。然后,在块545,移动计算设备可以向附件发送命令,在应用与附件之间建立通信会话。通信会话可以由移动计算设备创建并且为移动计算设备提供与附件通信的各种通信功能。命令可以包括通信会话ID、通信协议信息和/或已经响应启动命令而启动的具体应用的标识(例如,利用以下所述的反向域名约定)。
在块550,附件可以利用通信会话与应用互操作。在块555,过程500可以结束。例如,当附件从移动计算设备断开时、当移动计算设备设为飞行模式时、当用户通过应用接口指示结束通信的指示时和/或当应用关闭时,过程500可以结束。
图5从移动计算设备的角度描述了启动过程,而图6从附件的角度示出了启动过程。即,该图根据本发明的一些实施例示出了附件(例如,附件202)请求在移动计算设备(例如,移动计算设备200)启动一种应用类型的过程600。过程600与图4所示的过程400相似并且在块610开始。在块615,附件向移动计算设备发送启动命令。这个命令可以是以上关于图3、图4或图5描述的Launch命令。这种实施例中,启动命令可以指定应用类型。然后,附件可以等待来自移动计算设备的响应。有些实施例中,在超时之前附件可以等待预定时间段,并且在没有接收到响应的时候结束。
在块620,可以接收响应。这种响应可以是肯定确认(例如,ACK)或者否定确认(例如,NACK)。如果接收到否定确认,过程600可以在块640结束。如果接收到肯定确认,过程600就前进到块625。尽管接收到肯定确认,但是这种确认也不一定指示已经启动了应用。
在块625,附件可以确定它是否接收到在移动计算设备执行的应用与附件之间建立通信会话的命令。这个命令可以指示与移动计算设备启动的应用类型关联的应用准备好与附件通信。通信会话可以提供附件与移动计算设备通信所必需的各种通信功能和/或信息。除其它信息之外,命令可以包括通信会话ID和/或通信协议信息。
如果附件还没有接收到开通通信会话命令,过程600可以移动到块630。如果从附件接收到肯定确认开始经过了预定时间段,则过程600可以超时并且在块640结束。否则,过程600可以返回块625。
如果在块625接收到开通通信会话命令,过程600就前进到块635。通信会话可以根据从移动计算设备接收到的参数建立,而且两个设备可以在块635互操作。在块640,过程600可以结束。例如,当附件从移动计算设备断开时、当移动计算设备设为飞行模式时、当用户通过应用接口指示结束通信的指示时和/或当应用关闭时,过程可以结束。
图7示出了过程700,当附件请求应用的启动时,该过程可以在移动计算设备执行。过程700在有些方面与图3所示的过程300和图5所示的过程500相似。过程700在块705开始并且在块710可以发送应用通知请求。这个请求可以指示,当新应用被启动或终止时,附件愿意从移动计算设备接收通知。这个请求可以是作为通用隐语一部分或者具体隐语一部分的命令。响应该命令,移动计算设备可以向附件发送肯定或否定确认,指示它将遵照该请求或者不遵照该请求。在有些实施例中,应用通知请求可以被用于指示哪个应用当前正在执行。在有些实施例中,当一个应用被新启动时、当一个应用从前台处理移到后台处理时、和/或当一个应用从后台处理移到前台处理时,移动计算设备可以通知附件。
在块710之后,过程700可以沿着与过程300或者过程500相似的路径,直到块745。即,块715可以与块315或515相似。块720可以对应于块320或520。块725可以与块325或525相似。块730可以对应于块330或530。块735可以与块335或535相似。块740可以对应于块340或540。在块745,移动计算设备可以向附件发送应用通知。这种应用通知可以响应在移动计算设备启动的具体应用而被发送,而且可以指定所启动的应用。应用可以利用应用名称或者应用标识符(例如,利用反向域名约定)来指定。作为响应,移动计算设备可以从附件接收通信会话请求。这个请求可以向移动计算设备指示附件愿意开通与该应用的通信会话。响应于该请求,移动计算设备可以为附件和应用打开一个通信会话。其它实施例中,块745可以与块345或块545相似,其中可以在应用与附件之间打开应用会话。
在块750,应用与附件可以利用通信会话互操作。在块755,过程700可以结束。例如,当附件从移动计算设备断开时、当移动计算设备设为飞行模式时、当用户通过应用接口指示结束通信的指示时和/或当应用关闭时,过程700可以结束。
尽管在块710接收到的通知请求在以上被描述为“应用启动”通知请求,但是,某些实施例中,这种通知请求可以是在不同于应用启动环境的其它环境下使用的请求类型。例如,通知请求可以是当应用开始音乐重放时、或者当应用进行某种其它状态变化或事件时,附件被通知的请求。在“音乐重放”例子中,应用可以在启动之后开始音乐重放并且向附件发送指示它现在正在播放音乐的通知。当接收到该通知时,附件可以确定应用已经启动而且可以采取适当的动作与应用互操作(例如,发送通信会话请求等)。
图8示出了当附件请求应用启动时可以由附件执行的过程800。过程800在有些方面与图4所示的过程400和图6所示的过程600相似。过程800在块810开始。在块815,附件可以发送应用通知请求。这个应用通知请求可以是在图7的块710由移动计算设备接收的应用通知请求。块820可以对应于块420或者620,块825可以对应于块425或者625。在块830,附件可以接收指示了应用已经启动的应用通知。对其作出响应,移动计算设备与附件可以开通通信会话并且在块835开始互操作。
在块840,过程800可以结束。例如,当附件从移动计算设备断开时、当移动计算设备设为飞行模式时、当用户通过应用接口指示结束通信的指示时和/或当应用关闭时,过程800可以结束。
在有些实施例中,过程300、500和/或700可以由图2所示的移动计算设备200的处理器230执行。附件与移动计算设备之间的通信可以利用附件I/O205发生。此外,过程400、600和/或800可以由附件202的控制器260执行。而且,附件与移动计算设备之间的通信可以利用移动计算设备I/O250发生。
在进一步的实施例中,移动计算设备可以确定一个具体应用或者某一类型应用是否在移动计算设备可用于执行(例如,块330、530和730)。如果所述具体应用或者对应于所述应用类型的应用在移动计算设备不可用,移动计算设备可以从网络位置下载该应用。例如,应用识别信息或者应用类型识别信息可以发送到应用商店,在那里可以下载这种应用。有些实施例中,应用可以自动下载。在其它实施例中,可以询问用户他或她是否愿意下载该应用。如果用户批准,应用就可以被下载并且在移动计算设备执行。
在进一步的实施例中,在发送启动命令之前,附件可以请求关于可以在移动计算设备上执行的可用应用的信息。例如,AvailableApplicationRequest命令可以从附件发送到移动计算设备。作为响应,移动计算设备可以向附件发送AvailableApplication消息。这个消息可以包括有效载荷,其列出移动计算设备上可以被附件访问的所有可用应用。有效载荷还可以包括与可用应用关联的其它信息,例如应用图标等。这个列表可以按与移动计算设备的查找表中应用次序一致的方式排序。有些实施例中,这个列表可能不是所有应用的完整列表,因为有些应用对于附件不可用或者与附件的通信不兼容。利用这个列表,如果知道一个应用存在并且对于移动计算设备是可用的,那么附件可以请求该应用的启动。这种情况下,启动请求可以包括位掩码,该位掩码包括声明位,与应用列表中的应用对应。移动计算设备可以相对于应用列表指出声明位的位置,来简单地识别应用。
在进一步的实施例中,在建立与附件的连接时,移动计算设备可以自动启动应用,无需从附件接收明确的启动命令。例如,当连接到附件时,移动计算设备可以访问查找表,确定与附件兼容的一个或多个应用。然后,移动计算设备可以自动启动其中一个兼容应用。在多个应用被认为与附件兼容的情况下,移动计算设备可以基于优先级等级选择一个应用来启动,或者可以请求用户从这组兼容应用中选择特定的应用。
在进一步的实施例中,从附件发送到移动计算设备的启动命令可以包括指示应用是否要专门在前台或者专门在后台启动的信息。例如,附件可以设置成低功耗模式,其中它只想与应用在后台通信。本领域技术人员将认识到其它的变化、修改或可选方案。
反向域名约定(reverse domain name convention)
有些实施例中,反向域名约定可以用于管理应用命名空间。常规的域名从左往右提供较低等级的域到顶级域。例如,在域名“help.example.com”中,项“com”是顶级域而项“example”是较低级域,而项“help”是最低级域。作为另一个例子,域名“mac.apple.com”从左往右指定了最低级域“mac”、中间域“apple”和顶级域“com”。相反,反向域名将提供“com.apple.mac”。
反向域名约定可以指定具体公司所使用的应用。即,反向域名“com.company1.application1”指定与公司(或者其它开发商)“company1”关联的“application1”应用。因而,总的来说,公司可以利用反向域名约定实现应用,其中反向域名的第一部分定位公司(“com.company1”)并且与公司的(或者其它开发商的)互联网域名关联。反向域名的第二部分(“application1”)指的是具体应用。就附件和/或应用的不同开发商与不同的互联网域名关联而言,反向域名约定允许开发商通过基于其互联网域名的反转来命名它们的协议,以与其它开发商区分应用和/或附件。而且,如果在使用相同名字的两个开发商之间存在冲突,简单检查谁拥有对应互联网域名,确定哪个开发商具有对一个特定反向域名的权利。
有些实施例中,反向域名可以附加成包括特定于一类设备中所有设备或者特定于一类应用中所有应用的全局标识符。例如,所有的扬声器附件都可以包括附加到反向域名的标识符。例如,这种反向域名可以具有以下格式“com.company1.accessory1.speaker”或者“speaker.com.company1.accessory1”。利用这种约定,不同的公司可以生产扬声器,而且,虽然制造商不同,但移动计算设备仍可以把这种设备识别为扬声器。作为另一个例子,反向域名可以具有以下格式:“com.company1.accessory1.application1”。这个反向域名指定了一个具体应用,这个应用可以由附件用于请求该具体应用的自动启动(见图3和图4)。作为另一个例子,反向域名可以具有以下格式:“com.company1.accessory1”。这个反向域名指定了一个具体附件,这个附件可以与一组应用或者单个应用一起使用。而且,它可以由附件用于请求与附件1关联的具体应用的启动(见图3和图4)或者与accessory1关联的任何应用类型的启动(见图5和图6)。作为另一个例子,反向域名可以具有以下格式“com.company1.applicationtype1”。这个反向域名指定了具体的应用类型,这个应用类型可以指可以与附件互操作的应用的类属(见图5和图6)。然后,移动计算设备可以启动与这种应用类型关联的任何应用。这些例子的各种其它组合和变化都可以使用。
反向域名约定仅仅是可以如何识别应用协议的一个例子。任何类型的约定都可以使用。
本发明的实施例可以利用专用部件和/或可编程处理器和/或其它可编程设备的任意组合实现。在此所述的各种过程可以在相同处理器上或者不同处理器上以任意组合实现。相应地,当部件被描述为配置成执行某些操作时,这种配置可以例如通过把电子电路设计成执行所述操作、通过编程可编程电子电路(例如微处理器)以便执行所述操作或者其任意组合来实现。过程可以利用多种技术传送,包括但不限于,用于互操作通信的常规技术,而且不同的过程对可以使用不同技术,或者相同的过程对可以在不同的时间使用不同的技术。另外,尽管上述实施例可以参考具体的硬件和软件部件,但是本领域技术人员将认识到,硬件和/或软件部件的不同组合也可以使用,而且描述为在硬件中实现的特定操作也可能在软件中实现,反之亦然。
结合了本发明各种特征的计算机程序可以在各种计算机可读存储介质上编码;合适的介质包括磁盘或磁带、例如光盘(CD)或DVD(数字多样化盘)的光学存储介质、闪存存储器等。编码了程序代码的计算机可读介质可以与兼容的电子设备打包,或者程序代码可以与电子设备分离地提供(例如,经互联网下载)。
因而,尽管本发明已经参考具体实施例进行了描述,但是将认识到,本发明是要覆盖以下权利要求范围内的所有修改与等价物。

Claims (22)

1.一种方法,包括:
从附件向移动计算设备发送启动命令,其中该启动命令包括与要由移动计算设备执行的一个或多个应用关联的信息;
由附件接收来自移动计算设备的确认消息,该确认消息指示与启动命令中所包括的信息关联的应用可用于在移动计算设备执行;及
由附件接收来自移动计算设备的、与确认消息分离的打开会话消息,该打开会话消息指示已经为附件与移动计算设备之间的通信打开了通信会话。
2.如权利要求1所述的方法,还包括由附件与移动计算设备通信。
3.如权利要求2所述的方法,其中启动命令中所包括的信息指定了具体应用,其中确认消息指示所述具体应用可用于在移动计算设备执行,其中打开会话消息指示已经为与移动计算设备执行的所述具体应用通信而打开了通信会话,其中与移动计算设备的通信包括与在该移动计算设备执行的所述具体应用的通信。
4.如权利要求1所述的方法,其中在附件接收到否定的确认命令的情况下,其后停止与移动计算设备的通信。
5.如权利要求2所述的方法,其中启动命令中所包括的信息指定了通信协议,其中确认消息指示了应用可用于在与该通信协议兼容的移动计算设备中执行,其中打开会话消息指示了已经为利用所述通信协议与在移动计算设备执行的具体应用通信而打开了通信会话,其中与移动计算设备的通信包括利用所述通信协议与在移动计算设备执行的所述具体应用通信。
6.如权利要求2所述的方法,其中启动命令中所包括的信息指定了应用类型,其中确认消息指示了与该应用类型一致的应用可用于在移动计算设备中执行,其中打开会话消息指示了已经为与在移动计算设备执行的具体应用通信而打开了通信会话,其中与移动计算设备的通信包括与在移动计算设备执行的所述具体应用通信。
7.一种供移动计算设备使用的附件,该附件包括:
输入/输出接口,配置成与移动计算设备交换命令与数据;及
控制器,与输入/输出接口耦合,该控制器配置成:
检测移动计算设备与输入/输出接口的连接;
通过输入/输出接口向移动计算设备发送启动命令,该启动命令包括与要在移动计算设备启动的应用关联的指示;
通过输入/输出接口从移动计算设备接收开通通信消息,该开通通信消息指示已经为与具体应用通信而打开了通信会话。
8.如权利要求7所述的附件,其中控制器还配置成与在移动计算设备执行的所述具体应用相互操作。
9.如权利要求7所述的附件,其中控制器还配置成从移动计算设备接收确认,该确认指示了移动计算设备可以启动由所述启动命令指示的所述应用。
10.如权利要求7所述的附件,其中与应用关联的所述指示包括与一个或多个应用关联的一种或多种通信协议的指示。
11.如权利要求7所述的附件,其中与应用关联的所述指示包括应用类型的指示,所述具体应用是与该应用类型关联的应用。
12.如权利要求7所述的附件,其中与应用关联的所述指示包括具体应用的指示。
13.如权利要求7所述的附件,其中所述开通通信消息包括与所述具体应用兼容的通信协议的指示。
14.一种在移动计算设备中使用的方法,该方法包括:
从与移动计算设备耦合的附件接收启动命令,其中该启动命令包括与一个或多个应用关联的应用信息;
确定与该应用信息关联的应用是否在移动计算设备中可用;
在与该应用信息关联的应用在移动计算设备不可用的情况下,向附件发送拒绝所述启动命令的消息;及
在与该应用信息关联的应用在移动计算设备可用的情况下,其后:
发送与该应用信息关联的应用可用的确认;
启动与该应用信息关联的应用;
开通所述应用与附件之间的通信信道;及
向附件发送指示通信信道已经开通的消息。
15.如权利要求14所述的方法,其中发送到附件的、指示通信信道已经开通的消息包括通信协议的指示。
16.如权利要求14所述的方法,其中该应用信息包括以下一个或多个:具体应用、应用类型、通信协议及应用创建者的指示。
17.如权利要求14所述的方法,还包括确定移动计算设备是否可以启动与该应用信息关联的附件。
18.一种其上存储指令的非临时性计算机可读介质,当所述指令被移动计算设备的处理器执行时,使处理器执行操作,包括:
从附件接收启动应用的指示;
确定移动计算设备是否处于启动所述应用的状态;
在移动计算设备不处于启动所述应用的状态的情况下,向附件发送指示不可能启动所述应用的消息;及
在移动计算设备处于启动所述应用的状态的情况下:
执行所述应用;
在所述应用与附件之间开通通信信道;及
向所述附件发送通信信道已经开通的指示的消息。
19.如权利要求18所述的计算机可读介质,其中操作还包括在移动计算设备处于启动所述应用的状态的情况下向附件发送确认。
20.如权利要求18所述的计算机可读介质,其中确定移动计算设备是否处于启动所述应用的状态包括确定该应用是否在移动计算设备中可用于执行。
21.如权利要求18所述的计算机可读介质,其中确定移动计算设备是否处于启动所述应用的状态包括确定移动计算设备当前是否正在执行不兼容的应用。
22.如权利要求18所述的计算机可读介质,其中确定移动计算设备是否处于启动所述应用的状态包括确定移动计算设备是否处于启动所述应用作为后台过程的状态。
CN2011800524143A 2010-09-30 2011-09-22 结合附件的应用启动 Pending CN103189841A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US38856010P 2010-09-30 2010-09-30
US61/388,560 2010-09-30
US13/085,952 2011-04-13
US13/085,952 US20120081207A1 (en) 2010-09-30 2011-04-13 Application launching in conjunction with an accessory
PCT/US2011/052827 WO2012044519A1 (en) 2010-09-30 2011-09-22 Application launching in conjunction with an accessory

Publications (1)

Publication Number Publication Date
CN103189841A true CN103189841A (zh) 2013-07-03

Family

ID=44764219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011800524143A Pending CN103189841A (zh) 2010-09-30 2011-09-22 结合附件的应用启动

Country Status (5)

Country Link
US (1) US20120081207A1 (zh)
EP (1) EP2622472A1 (zh)
KR (2) KR101787185B1 (zh)
CN (1) CN103189841A (zh)
WO (1) WO2012044519A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737173A (zh) * 2012-10-15 2015-06-24 微软公司 基于开发者简档的许可证信息访问
CN109814621A (zh) * 2017-11-21 2019-05-28 福特全球技术公司 用于通过切换进行部件温度控制的方法和设备

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7970870B2 (en) 2005-06-24 2011-06-28 Microsoft Corporation Extending digital artifacts through an interactive surface
US8554924B2 (en) * 2009-03-16 2013-10-08 Apple Inc. Connection to multiple accessories with multiple accessory-specific protocols
US8913992B2 (en) * 2010-11-03 2014-12-16 Stephan V. Schell Methods and apparatus for access data recovery from a malfunctioning device
US9032413B2 (en) 2011-09-01 2015-05-12 Microsoft Technology Licensing, Llc Decoupling background work and foreground work
US8892792B2 (en) * 2011-09-12 2014-11-18 Intheairnet, Llc Distributed media system
KR20130035603A (ko) * 2011-09-30 2013-04-09 삼성전자주식회사 적어도 하나의 어플리케이션 데이터를 동기화하기 위한 장치 및 방법
US9182965B2 (en) 2011-10-31 2015-11-10 Nokia Technologies Oy Method and apparatus for developing socially suitable applications and devices
US9164803B2 (en) 2012-01-20 2015-10-20 Microsoft Technology Licensing, Llc Background task resource control
US9094489B1 (en) * 2012-05-29 2015-07-28 West Corporation Controlling a crowd of multiple mobile station devices
CN102779540A (zh) * 2012-08-08 2012-11-14 深圳乐投卡尔科技有限公司 基于Android平台控制iPod播放的方法
KR101447926B1 (ko) * 2013-01-25 2014-10-15 신정용 모바일 기기용 런처 시스템 및 그 런처 설치 방법
US9491223B2 (en) * 2013-02-17 2016-11-08 Onavo Mobile Ltd. Techniques for determining a mobile application download attribution
KR101503770B1 (ko) * 2013-03-04 2015-03-18 주식회사 코런 개방형 스마트 앱세서리
KR102163357B1 (ko) 2013-05-21 2020-10-08 삼성전자주식회사 애플리케이션 관리 방법 및 장치
US20150127529A1 (en) * 2013-11-05 2015-05-07 Oleg Makhotin Methods and systems for mobile payment application selection and management using an application linker
KR102233378B1 (ko) 2014-04-07 2021-03-29 삼성전자주식회사 이동 단말과 연결된 착용형 기기의 동작 방법 및 그 착용형 기기
US9596098B1 (en) * 2014-07-31 2017-03-14 iDevices, LLC Systems and methods for communication between devices and remote systems with a power cord
KR101600386B1 (ko) * 2014-09-01 2016-03-07 박종성 애플리케이션의 사용자 인증 방법
US9769301B2 (en) * 2014-09-02 2017-09-19 Apple Inc. Accessory device application bundling
US10592187B2 (en) 2014-09-02 2020-03-17 Apple Inc. Accessory device operation with user mobile device over network connection
US9420087B2 (en) 2014-09-02 2016-08-16 Apple Inc. Notifications with custom user interface
US9742977B2 (en) 2014-09-02 2017-08-22 Apple Inc. Camera remote control
US11094409B2 (en) 2015-01-20 2021-08-17 Novartis Ag Application unlock using a connected physical device and transfer of data therebetween
KR101661228B1 (ko) * 2015-10-16 2016-10-07 박종성 애플리케이션의 사용자 인증 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158952A1 (en) * 2000-12-29 2003-08-21 Kris Fleming Method and apparatus for associating virtual communications ports with applications and services on bluetooth enabled devices
CN1902609A (zh) * 2003-10-29 2007-01-24 高通股份有限公司 用于在一外围装置与一无线装置之间建立通信的系统及方法
CN101049002A (zh) * 2004-11-05 2007-10-03 诺基亚公司 蓝牙sap的随需激活
US20100121965A1 (en) * 2008-11-12 2010-05-13 Palm, Inc. Protocol for Program during Startup Sequence
US20100235454A1 (en) * 2009-03-16 2010-09-16 Apple Inc. Application communication with external accessories

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149874A1 (en) 2002-02-06 2003-08-07 Xerox Corporation Systems and methods for authenticating communications in a network medium
US7062261B2 (en) * 2003-01-31 2006-06-13 Motorola, Inc. Method and apparatus for automatic detection and installation of Java-enabled accessories
US20090024757A1 (en) * 2004-07-30 2009-01-22 Proctor David W Automatic Protocol Determination For Portable Devices Supporting Multiple Protocols
US8073984B2 (en) * 2006-05-22 2011-12-06 Apple Inc. Communication protocol for use with portable electronic devices
US20080248835A1 (en) * 2007-04-04 2008-10-09 Sony Ericsson Mobile Communications Ab Accessory communication method and system for mobile services
US8086781B2 (en) * 2007-06-22 2011-12-27 Apple Inc. Serial pass-through device
US20090064202A1 (en) * 2007-09-04 2009-03-05 Apple, Inc. Support layer for enabling same accessory support across multiple platforms
TW200922185A (en) * 2007-09-26 2009-05-16 Packetvideo Corp System and method for receiving broadcast multimedia on a mobile device
US20100138914A1 (en) * 2008-12-01 2010-06-03 Research In Motion Limited System and method of providing biometric quick launch
US8452903B2 (en) * 2009-03-16 2013-05-28 Apple Inc. Mobile computing device capabilities for accessories
US8626932B2 (en) * 2009-09-01 2014-01-07 Apple Inc. Device-dependent selection between modes for asymmetric serial protocols
US7865629B1 (en) * 2009-11-24 2011-01-04 Microsoft Corporation Configurable connector for system-level communication
US8433828B2 (en) * 2010-02-26 2013-04-30 Apple Inc. Accessory protocol for touch screen device accessibility

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158952A1 (en) * 2000-12-29 2003-08-21 Kris Fleming Method and apparatus for associating virtual communications ports with applications and services on bluetooth enabled devices
CN1902609A (zh) * 2003-10-29 2007-01-24 高通股份有限公司 用于在一外围装置与一无线装置之间建立通信的系统及方法
CN101049002A (zh) * 2004-11-05 2007-10-03 诺基亚公司 蓝牙sap的随需激活
US20100121965A1 (en) * 2008-11-12 2010-05-13 Palm, Inc. Protocol for Program during Startup Sequence
US20100235454A1 (en) * 2009-03-16 2010-09-16 Apple Inc. Application communication with external accessories

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104737173A (zh) * 2012-10-15 2015-06-24 微软公司 基于开发者简档的许可证信息访问
CN104737173B (zh) * 2012-10-15 2017-11-17 微软技术许可有限责任公司 基于开发者简档的许可证信息访问
CN109814621A (zh) * 2017-11-21 2019-05-28 福特全球技术公司 用于通过切换进行部件温度控制的方法和设备

Also Published As

Publication number Publication date
KR20130094329A (ko) 2013-08-23
KR101787185B1 (ko) 2017-10-18
KR101522801B1 (ko) 2015-05-26
KR20150013910A (ko) 2015-02-05
EP2622472A1 (en) 2013-08-07
WO2012044519A1 (en) 2012-04-05
US20120081207A1 (en) 2012-04-05

Similar Documents

Publication Publication Date Title
CN103189841A (zh) 结合附件的应用启动
US10193970B2 (en) Wireless synchronization of media content and subscription content
US9674331B2 (en) Transmitting data from an automated assistant to an accessory
CN102428456B (zh) 移动计算设备的附件识别
AU2011268050B2 (en) Method and system for locating an accessory and an application for use with a user device
US8700789B2 (en) Accessory and mobile computing device communication using an application communication protocol
US20140317303A1 (en) Application launching in conjunction with an accessory
US20140317714A1 (en) Configuration of Accessories for Wireless Network Access
CN102428457A (zh) 用于附件的移动计算设备附件能力
US20140133662A1 (en) Method and Apparatus for Communication Between a Vehicle Based Computing System and a Remote Application
AU2011101205B4 (en) Accessory and mobile computing device communication using an application communication protocol

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130703