CN102428665B - 使用应用通信协议的附件和移动计算设备通信 - Google Patents

使用应用通信协议的附件和移动计算设备通信 Download PDF

Info

Publication number
CN102428665B
CN102428665B CN201080021428.4A CN201080021428A CN102428665B CN 102428665 B CN102428665 B CN 102428665B CN 201080021428 A CN201080021428 A CN 201080021428A CN 102428665 B CN102428665 B CN 102428665B
Authority
CN
China
Prior art keywords
application
mobile computing
computing device
accessory
annex
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.)
Active
Application number
CN201080021428.4A
Other languages
English (en)
Other versions
CN102428665A (zh
Inventor
保罗·霍尔登
劳伦斯·G·波尔顿
尼汀·加纳特拉
米特切尔·安德勒尔
艾米丽·克拉克·舒尔波特
耶西·李·多罗古斯克尔
诗雅姆·S·特普拉尼
约翰·M·阿南尼
彼得·T·兰根费尔德
斯科特·克吕格尔
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
Priority to CN201510462782.5A priority Critical patent/CN105162955B/zh
Publication of CN102428665A publication Critical patent/CN102428665A/zh
Application granted granted Critical
Publication of CN102428665B publication Critical patent/CN102428665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • H04M1/0254Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets comprising one or a plurality of mechanically detachable modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces

Abstract

本发明的实施例提供了用于移动计算设备与附件之间的通信的各种通信技术。移动计算设备通用的附件协议可被用于一些通信。在移动计算设备处运行的应用可以利用应用通信协议来与附件通信。在一些实施例中,该应用通信协议可以与附件通信协议不同。在其它实施例中,该应用协议可以仅被应用和附件识别。在一些实施例中,可以通过将遵守应用协议的消息封装在遵守附件通信协议的消息内来在应用与附件之间传输消息。

Description

使用应用通信协议的附件和移动计算设备通信
背景技术
本公开一般涉及移动计算设备与附件之间的通信,并且具体地涉及将特定于附件和/或应用的协议用于这样的通信。
移动计算设备已广泛普及。举几个例子,各个公司已开发出如下移动计算设备,例如,iPhone、iPod Touch、设备、以及兼容Google的AndroidTM平台的智能电话。移动计算设备通常包括web浏览器、字处理器、电子邮件应用、地图、电话服务、游戏、音频应用、视频应用等。此外,还开发出了用于移动计算设备的附件。这样的附件可以利用一个或多个连接器和/或端口来与移动计算设备通信。这些附件可被用来控制移动计算设备的特征或者被移动计算设备用来与用户和/或环境交互。
发明内容
根据各个实施例,附件可以利用特定于附件的通信协议和/或特定于应用的通信协议来与运行在移动计算设备上的应用通信。例如,当附件与移动计算设备相耦合时,其可以利用移动计算设备定义的附件协议来执行初始化、标识和/或认证过程。附件还可以传输信息,该信息指示可由运行在移动计算设备上的应用用来与附件通信的一个或多个应用协议。在一些实施例中,应用协议可以不同于附件协议,而在其它实施例中,应用协议可以与附件协议相同。在一些实施例中,应用协议分组可被嵌套在附件协议分组的多个部分内。
这里公开的各个实施例描述了用于在附件与应用之间创建通信会话的方法。一些实施例描述了附件如何为移动计算设备提供合适的信息以利用应用协议举行通信会话。其它实施例描述了移动计算设备处的各种方案,用于选择应用协议、开通通信流、下载优选应用、与附件通信、将应用协议分组嵌套在附件协议分组内等等。在一些实施例中,运行在移动计算设备处的应用管理器可被用来抽象化附件与应用之间的通信。
下面的详细描述与附图一起将提供对这里公开的实施例的性质和优点的更好理解。
附图说明
图1A示出了根据本发明一些实施例的与附件设备相耦合的移动计算设备。
图1B示出了根据本发明一些实施例的无线地与移动计算使设备相耦合的附件设备。
图2示出了根据一个实施例的与附件相耦合的移动计算设备的框图。
图3是示出根据本发明一些实施例的移动计算设备内的各个模块和处理的框图。
图4是根据本发明一些实施例的进一步图示出应用与附件之间的通信的简化示图。
图5A-5C图示出了根据本发明一些实施例的将应用协议消息封装在附件通信协议命令内的一个示例。
图6图示出了根据本发明一些实施例的图4的实施例中的附件通信协议的命令的路径。
图7是根据本发明一些实施例的用于标识附件和兼容应用的处理的流程图。
图8示出了根据本发明一些实施例的可用于将兼容应用与附件相关联的相连协议列表和所支持协议表。
图9图示出根据本发明一些实施例的用于制定可用于定位用于附件的兼容应用的查询的技术。
图10是根据本发明一些实施例的可由应用执行来发起与附件的通信的处理的流程图。
图11图示出了根据本发明一些实施例的同时与两个不同附件交互的移动计算设备上的应用。
图12图示出了根据本发明一些实施例的同时与两个不同附件交互的移动计算设备上的两个应用。
图13图示出了根据本发明一些实施例的同时与同一附件交互的移动计算设备上的两个应用。
图14图示出了根据本发明一些实施例的移动计算设备的应用、应用管理器和硬件传输层之间的数据的流程。
图15是根据本发明一些实施例的可由移动计算设备处的应用管理器执行的处理的流程图。
图16是根据本发明一些实施例的可由移动计算设备处的应用管理器执行的处理的另一流程图。
图17是根据本发明一些实施例的可由与移动计算设备相耦合的附件执行来开展与附件的通信的处理的流程图。
图18是根据本发明一些实施例的可由移动计算设备处的应用执行来开展与附件的通信的处理的流程图。
具体实施方式
这里公开的本发明的各个实施例涉及移动计算设备与附件设备之间的通信的各个方面。在一些实施例中,附件可以利用附件通信协议与移动计算设备通信。附件通信协议可以指定通信命令、传输链路、认证例程、标识处理、专门语言(lingo)、分组结构、数据类型或者可用于移动计算设备与附件设备之间的通信的任何其它合适的命令或数据。
在移动计算设备上运行的应用还可以利用应用通信协议来与附件通信。在一些实施例中,应用通信协议可以指定用于该应用与附件之间的通信的通信命令、分组结构、数据类型、专门语言、消息格式等。在一些实施例中,由应用通信协议指定的通信命令、分组结构、数据类型、专门语言、消息格式中的至少一些可以不同于由附件通信协议指定的那些。在其它实施例中,由应用通信协议指定的通信命令、分组结构、数据类型、专门语言、消息格式中的至少一些可以与由附件通信协议指定的那些相同。
在一些实施例中,应用协议可以使用由附件通信协议指定的传输链路。应用通信协议例如可由应用和/或附件的开发者来开发。在一些实施例中,应用通信协议可以包括特定于应用和/或附件的命令、数据结构等。此外,术语“应用通信协议”和“应用协议”可互换使用。术语“附件通信协议”、“附件通信协议”、“一般通信协议”和“一般协议”也可互换使用。
图1A示出了与附件设备113相耦合的移动计算设备102。线缆111用来将移动计算设备102与附件设备113相耦合。线缆111可以包括与移动计算设备102相连的连接器108以及与附件设备113相连的连接器110。图1B示出了与移动计算设备102无线地耦合的附件设备113。
图1A和1B所示的移动计算设备可以为任何类型的移动计算和/或通信设备而不受限制。例如,可以使用iPod TouchTM、iPhoneTM、兼容Android的设备和/或Blackberry设备。此外,移动计算设备102可以提供媒体播放器能力、联网、web浏览、电子邮件、字处理、数据存储、应用运行和/或任何其它计算或通信功能。
附件113可以是能够与移动计算设备102通信的任何设备,例如外部扬声器系统;外部视频设备;多媒体设备;消费电子设备;测试仪器;家用电器(例如电冰箱或洗碗机);健身器材;安全系统;家庭或办公室自动化系统;相机;用户输入设备(例如,键盘、鼠标、游戏控制器);测量设备;医疗设备(例如,葡萄糖监视仪或胰岛素监视仪);销售点设备;汽车;汽车附件(例如,汽车立体声音响系统或汽车导航系统);无线电(例如,FM、AM和/或卫星);飞机、巴士、火车或其它公共交通运输车辆上的娱乐控制台;等等。可与移动计算设备联合使用的任何类型的设备可被用作附件设备。
图2示出了根据一个实施例的与附件202(例如,实现图1A或1B的附件113)相耦合的移动计算设备200(例如,实现图1A或1B的移动计算设备102)的框图。移动计算设备200可以包括处理器230、存储设备225、用户接口(UI)235、网络接口236以及附件输入/输出(I/O)接口205。
可实现为一个或多个集成电路(例如包括传统的微处理器或微控制器)的处理器230可以控制移动计算设备200的操作。例如,响应于通过用户接口235提供的用户输入信号,处理器206可以执行各种任务,例如,选择并播放可能存储在存储设备225中的媒体资产;利用网络接口236访问各种网络(例如,移动电话网络、因特网、局域网等)以发送和/或检索数据;运行驻留在存储设备225上的各种应用程序(Apps)226;等等。处理器230还可以管理经由附件I/O接口205与附件的通信。
用户接口235可以包括诸如触摸板、触摸屏、滚轮、点触轮(clickwheel)、拨号盘、按钮、小键盘、麦克风等的输入控制装置,诸如显示屏、指示灯、扬声器、耳机插孔等的输出设备,以及支持电子装置(例如,数模或模数转换器、信号处理器等)。用户可以操作用户接口235的各个输入控制装置来调用移动计算设备200的功能,并且还可以经由用户接口235来观看和/或收听来自移动计算设备200的输出。
存储设备225例如可以利用盘、闪存或任何其它非易失性存储介质来实现。存储设备225可以存储可由处理器230运行的应用程序226、系统程序和其它程序代码(未明确示出),以及可用来管理与各种附件的通信的诸如协议表227之类的各种数据。在一些实施例中,存储设备225还可以存储可由移动通信设备200播放的诸如音频、视频、静止图像等的媒体资产,以及描述媒体资产的元数据(例如,资产名称、艺术家、标题、流派等)、播放列表(可顺序地或按随机顺序播放的资产的列表)等等。存储设备225还可以存储任何其它类型的信息,例如有关用户的联系方式的信息(名字、地址、电话号码等);所安排的约会和事件;备忘录;和/或其它个人信息。
应用程序(在这里也称为“应用”或“apps”)226可包括可由处理器230运行的任何程序。在一些实施例中,某些应用可由其制造商安装在移动计算设备200上,而其它应用可由用户安装。应用程序的示例可以包括视频游戏应用、个人信息管理程序、用于播放媒体资产和/或导航媒体资产数据库的程序、用于控制电话界面拨打和/或接收电话的程序,等等。某些应用程序226可以提供与附件202的通信和/或对附件202的控制,并且某些应用程序226可以响应于来自附件202的控制信号或其它输入;下面描述示例。
网络接口236可以提供到一个或多个通信网络的接口。例如,网络接口236可以包括射频(RF)收发机以及用于经由诸如移动电话网络之类的移动通信网络通信的合适组件。另外或者替代地,网络接口236可以包含到因特网(例如,WiFi收发机、3G收发机等)、到个人区域网络(例如,蓝牙网络)或任何其它网络的无线连接。在其它实施例中,还可以提供有线网络连接(例如,以太网)。在一些实施例中,同一硬件可用来支持到多个网络的连接;因此,网络接口236可以包括模数和/或数模电路、基带处理组件(例如,编解码器、信道估计器等)、调制器、解调器、振荡器、放大器、发送器、接收器、收发器、内部和/或外部天线等等。在一些实施例中,与网络连通性相关联的一些操作可以全部或部分地被实现为在处理器230上运行的程序(例如,数字域中的编码、解码和/或其它处理),或者专用数字信号处理器可被提供。
附件I/O接口205可以包括多条信号路径,这多条信号路径被配置为运载移动计算设备200与附件202之间的各种信号。在一个实施例中,附件I/O接口205包括与苹果公司制造并销售的和iPhoneTM产品上所使用的连接器相对应的30引脚连接器;也可以使用其它连接器。替代地或另外,附件I/O接口205可以包括无线接口(例如,蓝牙等)。
在一些实施例中,移动计算设备200还可以利用附件I/O接口205来与主机计算机(未示出)通信,该主机计算机运行可以为移动计算设备提供媒体和/或应用的资产管理程序(例如,或者Microsoft的应用商店)。资产管理程序可以使用户能够向移动计算设备200添加媒体资产和/或应用,和/或从移动计算设备200移除媒体资产。用户可以更新与移动计算设备200上的媒体资产相关联的元数据。在一些实施例中,用户还可以与资产管理程序交互来创建并更新播放列表和/或应用以及其它文档。在一个实施例中,主机计算机维护媒体资产和/或应用的主数据库(masterdatabase),并且可以例如通过因特网访问其它数据库(包括关联数据库和播放列表),并且只要移动计算设备200连接到主机计算机,资产管理程序就自动地将主数据库与在移动计算设备200的存储设备225上维护的数据库同步。在其它实施例中,移动计算设备200可以使用网络接口236来与主机计算机通信和/或直接与各种其它服务器通信,以获取应用、媒体资产和/或其它数据。
附件202可以包括控制器260、用户接口255、移动计算设备I/O接口250、存储器265和附件特定硬件275。
移动计算设备I/O接口250可以包括被配置来运载附件202与移动计算设备200之间的各种信号的多条信号路径。在一个实施例中,移动计算设备I/O接口250可以包括适于与苹果公司制造并销售的和iPhoneTM产品上所使用的30引脚连接器相配的连接器。也可以使用其它连接器;例如,移动计算设备I/O接口250可以包括标准USB或Fire Wire连接器等。替代地或另外,移动计算设备I/O接口250可以包括无线接口(例如,蓝牙等)。
控制器260例如可以包括运行程序代码以执行各种功能的微处理器或微控制器,这些功能例如是数字音频解码、模拟或数字音频和/或视频处理、用户输入的处理、附件功能的控制等。控制器260还可以管理经由移动计算设备I/O接口250与移动计算设备的通信。
用户接口255可以包括诸如触摸板、触摸屏、滚轮、点触轮、拨号盘、按钮、小键盘、麦克风、探针等的输入控制装置,诸如视频屏幕、指示灯、扬声器、耳机插孔等的输出设备,以及支持电子装置(例如,数模或模数转换器、信号处理器等)。用户可以操作用户接口255的各个输入控制装置来调用附件202的功能,并且可以经由用户接口255来观看和/或收听来自附件202的输出。另外,在一些实施例中,用户可以经由附件用户接口255来操作移动计算设备200(或运行在其上的应用)。
存储器265可以利用任何类型的存储器、盘、或可存储用于控制器260的程序代码和/或数据的任何其它存储介质来实现。例如,存储设备265可以存储附件特定软件280,该附件特定软件280可以为控制器260提供与附件特定硬件275和/或用户接口255交互的指令。在一些实施例中,附件202可以接收来自移动计算设备200的信息(例如,用户输入、元数据和/或应用数据),并且这样的信息也可被存储在存储器265中。
附件特定硬件275可以表示使能附件202的渴望功能所需的任何硬件。例如,附件特定硬件275可以包括一个或多个数据搜集设备,例如任何类型的传感器或仪表。在一些实施例中,附件特定硬件275可以包括生成表示电特性(电阻、电压差等)的数据的电子仪表;检测光和/或光的图案的光传感器;运动传感器;温度传感器;湿度传感器;压力传感器;对所选化学品(例如,可能地,诸如一氧化碳之类的有毒气体)的存在作出响应的化学传感器;等等。附件特定硬件275还可以包括一个或多个医疗设备,例如葡萄糖计量仪、呼吸仪、心率和/或心功能监视仪、血压监视仪等。
在一些实施例中,包括有数据搜集设备的附件特定硬件275可以提供与物理数据相对应的或者表示物理数据的一个或多个电信号(例如,电压、电阻和/或电流)。可以使用多种格式的模拟和/或数字信号。附件特定硬件275还可以包括在将信号发送给控制器260之前对信号进行处理的信号处理组件;在一些实施例中,附件特定硬件275可以直接将电信号发送给可以处理该信号的控制器260。例如,如果附件特定硬件275包括利用热电偶实现的温度计,则来自热电偶的电阻数据可由附件特定硬件275、控制器260或它们两者转换为温度数据。此外,例如可以利用如下所述的应用协议来将表示附件特定硬件275所搜集的数据的信号(经过或不经过控制器260的处理)发送给在移动计算设备200上运行的应用;因此,在移动计算设备200上运行的应用也可以处理利用附件特定硬件275搜集的数据。
在一些实施例中,附件特定硬件275可以包括一个或多个计算机可控设备。计算机可控设备的示例包括发动机、致动器、灯、相机、电子管、扬声器、显示屏、打印机和/或可由控制器260控制的任何其它装备。在一些实施例中,在移动计算设备200上运行的应用可以向附件202发送控制信号,并且控制器260可以响应于控制信号来操作附件特定硬件275。
在一些实施例中,附件特定硬件275可以包括用户接口255的组件。因此,在移动计算设备200上运行的应用可以接收来自附件202的用户输入,经由附件202将输出提供给用户,和/或控制附件202能够执行的任何操作、与其交互或者对其作出响应。
在一些实施例中,附件特定硬件275可以包括网络和/或通信接口。例如,附件特定硬件275可以包括RF接收机(例如,用于FM、AM、卫星波和/或其它频带)和/或RF发射机(例如,个人用短距离发射机)。在其它实施例中,附件特定硬件275可以包括到个人区域网的通信接口,例如蓝牙接收机或其它短距离无线通信接口。在其它实施例中,附件特定硬件275可以包括电话接口、GSM、CDMA和/或其它语音和/或数据网络接口。
因此,附件特定硬件275可以包含想要与移动计算和/或通信设备进行互操作的任何硬件组件。
将理解,这里描述的系统配置和组件是说明性的并且变更和修改是可以的。移动计算设备和/或附件可以具有未在这里具体描述的其它能力。虽然在这里参考特定块描述了附件202和移动计算设备200,但是将明白,这些块是为了描述方便而定义的并且不旨在暗示组件部分的任何物理布置。此外,这些块不必对应于物理上不同的组件。
移动计算设备200的附件I/O接口205和附件202的移动计算设备I/O接口250使得移动计算设备200能够连接到附件202并且然后从附件202断开连接。如这里使用的,每当附件I/O接口205与移动计算设备I/O接口250之间的通信信道打开时移动计算设备200与附件202就被“连接”起来,并且每当该通信信道关闭时就“断开连接”。可以通过物理附接(例如,在移动计算设备200与附件202的各自的相配连接器之间)、通过诸如线缆之类的直接附接或者通过建立无线通信信道来实现连接。类似地,可以通过物理拆开、使线缆断开连接、关断附件202或移动计算设备200的电源或者关闭无线通信信道来实现断开连接。因此,可以使用多种通信信道,包括有线信道(通用串行总线(“USB”)、Fire Wire(IEEE1394标准)或通用异步接收器/发送器(“UART”))或无线信道(例如,Bluetooth(由蓝牙SIG开发的并由商标许可的短距离无线通信标准)、WiFi(遵循IEEE 802.11系列标准中的任一者)、无线个人区域网络、红外等)。在一些实施例中,可以利用有线和无线信道两者来进行通信。在一些实施例中,移动计算设备与附件之间的多个通信信道可以同时打开,或者移动计算设备可以同时被连接到多个附件,其中每个附件使用不同的通信信道。
无论特定的通信信道如何,只要移动计算设备200与附件202彼此相连,这些设备就可以通过按附件通信协议所指定的那样交换命令和数据来进行通信。附件通信协议可以定义用于在移动计算设备200与附件202之间发送消息的格式。例如,附件通信协议可以指定每个消息在具有头部、净荷和/或尾部的分组中被发送。头部可以提供诸如起始指示符、分组长度和将由接收者处理的命令之类的基本信息,而净荷提供与该命令相关联的任何数据;关联数据的量对于不同命令可以不同,并且一些命令可以提供可变长度净荷。分组还可以包括尾部,尾部可以提供例如本领域已知的检错或纠错码和/或所需要的其它信息。在各个实施例中,附件通信协议可以定义用于指示将由接收者采取的动作;用信号通知任务的完成、状态的改变或错误的发生;和/或标识关联数据的性质的具体命令。在一些实施例中,命令可被定义为使得任何特定命令仅在一个方向上有效。
附件通信协议还可以指定可用于在设备之间发送信号的一个或多个物理传输链路。例如,传输链路可以为USB链路、UART链路、Fire Wire链路、蓝牙链路、WiFi链路、并行链路、串行链路等。在此层级上,附件通信协议可以指定例如起始字节、同步字节、停止字节和/或其它辅助信号。在一些实施例中,附件通信协议可以提供多个替代传输链路;因此单个移动计算设备可以支持通过多种无线链路(包括有线和/或无线链路)的通信。
附件通信协议可以定义多种“专门语言”,其中“专门语言”一般是指可由各种类别的附件支持(或不支持)的一组相关命令。在一个实施例中,命令可由第一字节和第二字节唯一地标识,该第一字节标识该命令所属的专门语言并且第二字节标识该专门语言内的特定命令。也可以使用其它命令结构。不需要所有附件、附件可被连接到的所有移动计算设备都支持附件通信协议内所定义的每种专门语言或者特定专门语言的每个命令(例如,不同设备可能使用给定专门语言的不同版本)。
在一些实施例中,被设计为彼此互操作的每个附件202和每个移动计算设备200至少支持包含有所有这些设备共用的命令的“通用”专门语言。通用专门语言可以包括这样的命令,这些命令使得移动计算设备和附件能够向彼此标识其自身并且至少提供关于其各自能力的一些信息,包括各自支持哪些其他专门语言(如果有的话)以及在相连接时各自希望使用另一设备的哪些能力。
通用专门语言还可以包括移动计算设备可用来验证所声称的附件能力和身份(或者反之,附件可用来验证所声称的移动计算设备的能力和身份)的认证命令,并且如果认证不成功则附件(或移动计算设备)可被阻止调用某些命令或专门语言。例如,移动计算设备200内的认证管理器(未示出)可与附件202内的认证管理器(也未示出)通信,以例如基于公钥密码系统和移动计算设备200的认证管理器内所维护的数字证书的商店来执行认证过程。
附件通信协议的通用专门语言或另外的专门语言还可以包括“隧道传输”命令,“隧道传输”命令允许在移动计算设备200上所运行的应用226与附件202之间交换任意信息。例如,TunnelToAcc命令可被定义为可由移动计算设备200发送给附件202。该命令的净荷可以是任何数据、控制信号或者运行在移动计算设备200上的应用226可以生成并发送给附件202的其它信息。类似地,TunnelToHost命令可被定义为可由附件202发送给移动计算设备200。该命令的净荷可以是任何数据、控制信号或者附件202可生成并发送给运行在移动计算设备200上的应用226的其它信息。这些隧道传输命令可被定义为使得附件通信协议对于净荷内容是不可知的。下面描述用于管理通信以使得特定应用仅将数据、控制信号或其它信息发送给能够处理它的附件(反之亦然)的技术的示例。
在一些实施例中,附件可以利用应用通信协议来与API通信,该API与移动计算设备处的一个或多个应用相关联。例如,这样的通信可以使用上面讨论的“隧道传输”命令。在一些实施例中,附件可以利用附件通信协议来与与一个或多个应用相关联的API通信。在其它实施例中,附件还可以利用附件通信协议和/或应用通信协议中的任一者或两者来与移动计算设备操作系统通信。因此,这里公开的实施例可用来利用应用通信协议和/或附件通信协议中的任一者或两者来辅助从附件到移动计算设备处的应用、API和/或操作系统的通信。
移动计算设备和附件支持的附件通信协议可以包括各种其它专门语言,例如,允许附件发送指示将被调用的移动计算设备功能的命令的简单远程专门语言、可用来传输与在附件上复制移动计算设备的用户接口的全部或一部分有关的命令和数据的远程用户接口专门语言(从而支持更高级的远程控制)、允许用户通过操作移动计算设备来控制调谐器附件的调谐器专门语言、允许附件在移动计算设备上存储数据的存储专门语言,等等。任何专门语言或专门语言的组合,或者其它命令或命令组都可以结合这里描述的实施例被使用。
将理解,这里描述的附件通信协议是说明性的并且变更和修改是可以的。这里描述的具体命令可被其它命令或命令的组合、或者其它类型的消息和格式替代。另外,不要求任何特定的移动通信设备或附件支持这里描述的所有命令和操作。
如上面提到的,在移动计算设备200上运行的应用226与附件202可以交换任意数据、控制信号和/或其它信息(在此也称为“消息”)。这些消息可以与多种多样的境况有关。例如,与用户输入事件、检测到的外部状况、接收到的数据或者可能在移动计算设备200处发生的任何其它事件或状况有关的消息可被传输给附件202。反之,与用户输入事件、检测到的外部状况、接收到的数据或者可能在附件202处发生的其它事件或状况有关的消息可被传输给移动计算设备200。
例如,在一些实施例中,移动计算设备200可以处理例如通过用户接口255来自用户的输入事件,例如,触摸屏事件、按钮按压、滚轮事件等。移动计算设备200可以将表示输入事件的数据提供给运行在移动计算设备200上的应用、附件202或它们两者。附件202可以将这样的数据解释为例如用于控制附件特定硬件275和/或用于控制器260处的处理的输入。例如,触摸屏数据可由移动计算设备200收集来供应用、附件202或它们两者使用;在一些实施例中,触摸屏数据可以包括表示敲击和/或移动(例如扫过、挤压、拖动和其它手势)的数据。在一些实施例中,触摸屏数据可以以原始数据格式(例如,表示检测到与手指移动相对应的压力的地点的坐标序列)被发送。在其它实施例中,触摸屏数据在被发送给附件之前可被转换为经处理数据,例如手势事件(例如,敲击、从一点到另一点的扫过或拖动、挤压等)。在一些实施例中,原始键盘数据可被发送给附件和/或经处理的键盘数据可被发送给附件。在一些实施例中,可以利用应用和应用协议将一些或所有类型的用户输入数据传输给附件202,例如,如下所述的;在其它实施例中,就附件通信协议支持特定类型的用户输入数据的发送而言,可以利用附件通信协议来传输一些或所有类型的用户输入数据。
移动计算设备200还可以将用户输入以外的信息发送给附件202。例如,在一些实施例中,除了用户输入设备以外,移动计算设备200还可以包括各种传感器和/或数据搜集设备;示例可以包括加速度计、陀螺仪、罗盘、位置确定设备(例如,全球定位系统接收机或电话三角系统)、光传感器、红外传感器、相机、网络接口(例如,电话、WiFi、蓝牙)等。移动计算设备200可以例如响应于来自附件202的具体请求来将任何或所有的这样的数据提供给附件202。在一些实施例中,可以利用应用和应用协议来将一些或所有的这样的数据传输给附件202,例如,如下所述的;在其它实施例中,就附件通信协议支持特定类型的信息的发送而言,可以利用附件通信协议来传输一些或所有的这样的数据。
在另一示例中,附件202可以接收来自移动计算设备200的输入事件。这样的事件可以对应于在移动计算设备200处检测到的用户输入和/或其它数据,包括但不限于上面描述的数据类型中的任何数据类型。在一些实施例中,这样的输入事件可由附件202处的控制器260处理来控制附件特定硬件275。例如,移动计算设备200处的触摸屏或其它用户输入事件可被发送给附件202以打开附件特定硬件275、改变附件特定硬件275的状态、接收来自附件特定硬件275的数据、向附件特定硬件275提供数据、关断附件特定硬件275、和/或设定附件特定硬件275的设置。触摸屏数据例如可以以原始数据格式被发送或者作为经解释事件(例如,按压、扫过、挤压)被发送。在一些实施例中,附件特定软件280可以包括用于接收和/或解释原始触摸屏数据的指令。在一些实施例中,附件特定软件280可以包括将原始触摸屏数据转译为针对附件特定硬件275的命令和/或控制。在另一实施例中,触摸屏数据可以以原始格式被提供给在移动计算设备200上运行的应用,其可以解释该数据并将对应命令和/或信息发送给附件202。
此外,在附件202处从移动计算设备200接收的输入事件可由运行附件特定软件280的控制器260处理。在一些实施例中,附件特定软件280可以响应于从移动计算设备200接收的输入事件而与附件特定硬件275交互。
此外,在一些实施例中,附件特定硬件275还可以由移动计算设备200经由与附件202的连接进行控制。例如,在移动计算设备200上运行的应用可以包括程序代码,该程序代码在被处理器230执行时,可以控制附件202处的附件特定硬件275、与之交互、与其互操作、和/或从其接收信号。在一些实施例中,在移动计算设备200上运行的应用可以与在附件202的控制器260上运行的控制程序交换消息,从而指示控制器260与附件特定硬件275通信和/或控制附件特定硬件275的操作。这样的消息例如可以利用如下所述的应用协议来交换。
在一些实施例中,附件特定硬件275可以将输入数据提供给控制器260。例如,附件特定硬件275可以包括可将物理特性转换为可被发送给控制器260和/或存储在存储器265中的数据(或表示数据的电信号;这些术语可互换使用)的测量传感器。控制器260可以测量该数据(例如,应用校准校正、降噪和/或其它数据处理操作)。经处理数据可从附件202被发送给移动计算设备200。在移动计算设备200处,应用还可以处理该数据和/或将数据通过用户接口提供给用户。此外,应用可以响应于该数据来执行任意数目的功能。
在一些实施例中,附件和应用可以交换所需要的任何消息,其中术语“消息”一般是指任何类型的控制信号、事件、数据、状态或配置信息,或者发送者可获得的任何其它类型的信息。为了辅助消息的交换,附件和应用可以使用相互议定的应用协议。应用协议可以为可被交换的消息指定所接受格式的总体。遵循特定应用协议的设备或程序可以根据该应用协议的所接受格式总体来构建它们发送的消息,并且可以根据该应用协议的所接受格式总体来解释它们接收的消息。例如,在二进制数字通信的情况中,应用协议可以指定接收者将如何解释包含消息的比特。因此,与附件通信协议相似,应用协议可以指定分组结构;命令;专用语言;净荷格式;和/或其它格式、数据结构、语义或解释规则,以使得由一个参与者发送的特定消息将被接收者正确地解释。实际上,在一些实施例中,附件通信协议的部分可以直接被用作用于特定附件和/或应用的应用协议的全部或一部分。
在这里描述的某些实施例中,附件协议消息例如可以利用如上所述的隧道传输命令、通过将消息包封、包装或封装在遵守附件通信协议的分组内而在设备之间被发送。因此,由附件通信协议指定的传输链路可被使用,并且应用协议无需指定物理传输链路。
可构想创建出使用多种不同应用协议的无限范围的附件和应用来用于特定移动计算设备(或移动计算设备的线路)。在一些实施例中,移动计算设备200可被配置有应用协议管理能力(例如,使用应用管理器),该能力包括跟踪由每个所连接附件使用的(一个或多个)应用协议以及由每个正运行和/或被安装的应用使用的(一个或多个)应用协议。例如,移动计算设备200可以提供系统服务来辅助标识将用于特定附件的适当应用和/或标识一合适附件是否可被获得用于特定应用。这些服务可以在无需移动计算设备200的系统服务根据任何应用协议来实现或通信的情况下被提供。
图3是示出根据本发明实施例的移动计算设备200内的各个模块和处理的框图。所示出的各个模块可以对应于在图2的处理器230上运行的程序、在移动计算设备200的其它处理器上运行的程序、专用集成电路或其它实施方式。在一些实施例中,多个处理器芯片或者单个芯片内的多个处理器核可用来实现这里描述的各个模块和处理。一些或所有处理器可以是运行软件和/固件程序的可编程通用处理器;其它处理器可以是数字信号处理器、具有内置功能的状态机或者它们的任意组合。
端口305-307分别为附件300-302提供通信信道。端口305-307的每个可以是支持具体通信信道的物理端口和/或逻辑端口。例如,端口305可以是与诸如USB或UART之类的有线信道相关联的物理端口,并且可以包括硬件元件(例如,兼容USB的驱动器电路和/或引脚)以及合适的控制软件。端口306可以是与诸如蓝牙之类的无线信道相关联的逻辑端口(例如,虚拟串行端口)。在一些实施例中,每个端口305-307可以发送和接收遵守附件通信协议的消息,该附件通信协议适用于与该端口相关联的特定物理传输或信道。虽然示出了三个端口,然而将明白,移动计算设备可被设计为支持任意组合的任意数目的物理和/或逻辑端口。此外,如下所述,在一些实施例中,单个附件可被连接到多个端口。
例如可以是由处理器230运行的固件或软件模块的协议管理器310可以从端口305-307接收移动计算设备协议消息(也称为命令)并且开始解释消息的处理。在一些实施例中,协议管理器310或者与协议管理器310相关联的关联协议后台程序(daemon)(未示出)也可以创建或定义端口305-307,并将它们连接到合适的通信硬件,例如连接器引脚和驱动器电路、无线收发机等。在一个实施例中,协议管理器310(或其关联协议后台程序)可以提取在各个端口上接收的进入移动计算设备协议消息并且将所提取消息递送给支持层315或移动计算设备200内的其它组件。因此,图3的处理栈中的较上层级可以独立于特定传输链路。
在另一实施例中,协议管理器310可以从支持层315接收打算去往所连接附件(例如,附件300-302中的任一个)的外出信息(例如,已由创建消息的应用404根据应用协议进行了构建的消息),将该外出消息封装在移动计算设备协议分组内,并且将该分组递送给端口305-307中连接到所希望附件的一个端口。
在一些实施例中,协议管理器310(或关联协议后台程序)还可以支持和/或控制端口的开闭。例如,在虚拟端口的情况中,协议管理器310可以在启动时创建一组虚拟端口并且当连接被请求和/或被终止时打开和/或关闭端口。
协议管理器310可以维持动态端口映射325,其将具体应用协议与具体端口相关联。例如,当诸如附件300之类的附件在诸如端口305之类的特定端口上建立到移动计算设备200的连接时,附件300例如可以经由端口305提供协议名称串来向协议管理器310标识其支持的(一个或多个)应用协议(例如,在附件300的情况中为AP3)。协议管理器310可以将该应用协议名称与端口的关联性存储在端口映射325中。当该附件随后断开连接时,该关联性可从端口映射325被移除。因此,端口映射325可以提供当前可供应用使用的应用协议列表。如下所述,这样的列表辅助附件与应用之间的通信的路由以及在兼容附件被连接时对兼容应用的通知。
软件支持层315可以充当协议管理器310(以及可选地,其它低层设备功能)与可在移动计算设备200上运行的应用320-322之间的中介。例如,软件支持层315可以提供可由应用用来调用设备功能的应用程序接口(API)。软件支持层315可以提供独立于应用320-322的设备的额外层;然而,本领域技术人员将理解,并非图3所示的所有层都是必要的。例如,在一些实施例中,协议管理器310可以直接与应用320-322通信。
在所示实施例中,支持层315可以提供附件信息查找表330。在一个实施例中,附件信息表330可以包括关于每个所连接附件的信息,例如,附件类型、附件标识符和/或附件所支持的一个或多个应用协议的名称。附件信息表330可以在附件连接和断开连接时响应于协议管理器310提供的信息而被填充和更新。
应用320-322可以是同时或顺序运行的应用并且可被实现为例如可由处理器230运行的程序代码。各个应用320-322可以提供与移动计算设备200和/或相连附件300-302的各种形式的用户交互。例如,应用可以向所连接的测量探针附件提供用户接口。响应于用户输入,应用可以指示该测量探针开始记录测量数据以及停止记录测量数据。应用还可以向用户呈现测量数据。应用可将数据转换为各种形式和/或提供进一步的用户交互,例如观看随着时间的测量的记录、对数据执行分析操作(例如,平均、趋势分析、图形分析等)等。
正运行应用(例如,应用320-322中的任一个)可以在任何时间查询附件信息表330以判断兼容附件(即,支持该应用使用的应用协议的附件)是否被连接。如果兼容附件被连接,则应用可以利用该应用协议与该附件通信。例如,如下所述,应用可以发起与该附件的通信会话。
将理解,这里描述的模块是说明性的并且变更和修改是可以的。移动计算设备200可以支持任意类型的应用,并且可在用户或另一测量的控制下开启或退出应用。诸如支持层315和协议管理器310之类的某些模块可以用软件和/或固件来实现并且被配置为在设备加电时自动地被启动并且仅在断电或各种异常状况被检测到时终止;应用320-322可以响应于用户输入或其它输入而开始和终止。在一些实施例中,例如,如下所述的,当对应附件被连接时,应用可以自动被开启。各种模块或处理在未被使用时可以进入非活动状态以最小化资源消耗。此外,并非这里示出的所有层和模块都是必要的;例如,在一些实施例中,应用可能绕过支持层315直接与协议管理器通信。在其它实施例中,在图3中独立地示出的模块或层可被组合,或者可以提供附加模块或层,例如与移动计算设备200的各种系统服务(例如,音频和/或视频回放、网络连接等)相关联的协议后台程序和/或模块。
还将明白,附件也可以实现与图3所示的类似的模块、层和其它组件,或者其变更或修改。只要附件能够根据附件通信协议与移动计算设备交换信息,内部实现方式可以按需改变。
如图3所示,在一些实施例中,移动计算设备200可以维护多个同时运行的应用320-322和/或到多个附件305-307的同时连接。应用和/或附件可以支持不同的(以及可能不兼容的)应用协议,并且每个应用协议可被指派一名称(例如,唯一串)以将其与所有其它应用协议区分开。例如,在图3的实施例中,应用320和附件301支持应用协议AP1;应用321和附件302支持应用协议AP2;并且应用322和附件300支持应用协议AP3。
可构想第三方将能够独立地开发出应用和/或附件。如果两个附件(或应用)将相同的附件协议名称与实际上不兼容的应用协议相关联,则例如如果这两个附件试图同时连接到同一移动计算设备,则这可能导致名称冲突。为了避免这样的冲突,希望为应用协议名称提供集中化的名称空间管理。在一些实施例中,中央名称空间管理器(例如,移动计算设备的制造商)可以在应用协议的开发者请求时向应用协议指派名称。在另一实施例中,中央名称空间管理器可以简单地定义一命名协定,如果遵循它,则其应当防止名称冲突,并且附件和/或应用的开发者可以通过遵循该协定来避免冲突。
在一个实施例中,反向域名协定被用于管理应用协议名称空间。传统的域名从左到右提供低层域到顶层域。例如,在域名“help.example.com”中,项“com”是顶层域,项“example”是较低层域,项“help”是最低层域。作为另一示例,域名“mac.apple.com”从左到右指定了最低层域“mac”、中间域“apple”和顶层域“com”。另一方面,反向域名将提供“com.apple.mac”。
反向域名协定可被用来指定由具体公司使用的应用协议。即,反向域名“com.company1.accessory1(com.公司1.附件1)”指定了“accessory1”与公司(或其它开发者)“company1”相关联。因此,一般地,公司可以利用反向域名协定来实现协议,其中,反向域名的第一部分引用公司(“com.company”)并且与公司(或其它开发者)的因特网域名相关联。反向域名的第二部分(“accessory1”)指定具体协议。就附件和/或应用的不同开发者与不同因特网域名相关联而言,反向域名协定允许开发者通过基于其因特网域名的反向来命名其协议从而将应用和/或协议和/或附件与其它的区分开。该协定允许开发者独立的命名其协议而无需关注其它开发者的命名协定。此外,如果在使用相同名称的两个开发者之间存在冲突,则对谁拥有对应因特网域名的简单检查将确定哪个开发者具有使用特定反向域名的权利。
在一些实施例中,反向域名可被附加为包括一类设备中的所有设备特有的全局标识符。例如,所有顺序通过类型(serial pass through)的设备可以包括附加于反向域名的标识符。例如,这样的反向域名可以具有如下格式:“com.company1.accessory1.serialpass”或“serialpass.com.company1.accessory1”。利用这样的协定,不同公司可以生产顺序通过设备并且尽管制造商不同移动计算设备也可以识别这些设备。该反向域名协定仅仅是可以如何标识应用协议的一个示例。还可以使用任何类型的协定。
因此,当附件与移动计算设备相连时,附件可以通过提供利用反向域名协定指派给每个所支持协议的名称来向移动计算设备提供其所支持的应用协议的列表。附件可以支持单个应用协议或多个应用协议。基于接收到的信息,图3的移动计算设备200可以利用诸如附件类型、附件标识符、应用协议名称和/或通信端口标识符之类的其它查找表来填充端口映射325、附件信息表330和/或其它查找表。如下所述,应用320-322可以使用这些查找表来判断兼容的附件是否可用,并且支持层315和/或协议管理器310可以使用查找表来路由通信而不必明白任何应用协议。
例如,移动计算设备200可以与温度计无线连接并且还利用线缆与相机连接。(例如,在图3中,附件302可以是温度计并且端口Z为无线端口,而附件300可以是相机并且端口X是有线端口。)当连接上时,温度计可以通过发送反向域名“com.temprus.thermometer1”来标识其所支持的应用协议。该反向域名可利用附件通信协议被发送给用移动计算设备。在该移动计算设备中,该反向域名可作为应用协议名称被存储在查找表中(例如,端口映射325和/或附件信息表330);在一些实施例中,反向域名可以结合温度计的附件标识符和/或温度计可被访问的无线端口被存储。类似地,当连接上时,再次地,相机可以通过利用附件通信协议发送如下反向域名“com.camerasrus.camera1”来标识其所支持的应用协议。该反向域名例如也可以结合相机的附件标识符和/或相机可被访问的端口而被存储在查找表中(例如,端口映射325和/或附件信息表330)。
移动计算设备200可以运行利用应用协议“com.temprus.thermometer1”与温度计通信的温度应用(例如,应用321)来进行温度读取。在运行期间,温度应用例如通过搜索协议名“com.temprus.thermometer1”来访问查找表以查看兼容的应用协议是否存在。当温度应用找到“com.temprus.thermometer1”时,则该应用找到了匹配并且可以开始利用com.temprus.thermometer1应用协议与温度计通信。例如通过利用附件通信协议的隧道传输命令来将通信路由通过相关联端口。应用协议可以指定可与附件通信协议中所指定的不同的命令、分组信息、数据等。此外,提供应用和/或附件的公司(例如,TempRUs公司)可以实现用于应用与附件之间的通信的任何通信协议。
图4是根据本发明一些实施例的进一步图示出应用与附件之间的通信的简化示图。移动计算设备400可被连接到附件402,从而允许运行在移动计算设备400上的应用404利用应用协议与附件402通信。
在图4所示的实施例中,应用404已经确定附件402是兼容附件并且已通过调用针对支持层408的适当功能调用来创建会话406。会话406例如可以是由应用404利用对支持层408的API调用所创建的软件对象。会话406可被与创建它的应用404以及在应用404创建该会话时所指定的特定附件和/或应用协议相关联。会话406可以提供输入流和输出流等,分别地,输入流的内容是从应用404接收的并且输出流的内容是递送给应用404的。(下面将描述会话的创建。)
为了利用应用协议将消息(例如,控制信号和/或其它信息)传输给附件402,应用404生成消息并将其作为数据写入会话406的输出流中。在此实施例中,应用404仅仅负责根据应用协议来格式化该消息;移动计算设备400上的其它中间处理不会更改被写入输出流的数据。
会话406检测到输出流中数据的存在,并且将对应发送(SND)指令发送给协议管理器410。SND指令提供与会话406相关联的附件协议标识符和附件以及表示来自输出流的数据的“包(bundle)”。在一些实施例中,该包可以对应于消息数据的全部;然而,取决于消息长度和附件通信协议可能施加给分组长度的约束,包也可以仅对应于消息数据的一部分。反之,在一些实施例中,单个包可能包括多个应用协议消息。
协议管理器410可以使用由会话406提供的附件和附件协议标识符以及端口映射412来选择用于发送该包的端口。协议管理器410还可以将该包封装在附件通信协议的命令内,例如,如上所述的TunnelToAcc命令。附件通信协议命令被发送给端口414以供发送。(虽然在图4中仅示出了一个端口,但是将明白,移动计算设备400可以具有多个端口。)
图5A-5C图示出根据本发明一些实施例的将应用协议消息封装(包装)在附件通信协议命令内的示例。图5A示出了附件协议分组500的一个示例。如图所示,分组500包括头部502和净荷504。附件通信协议例如可以指示头部的大小以及什么信息可被设置在头部502中。在一些实施例中,头部502可以包括命令或字节代码,命令或字节代码可以指示什么被包含在净荷中和/或将利用净荷中的数据做什么。例如,在所示实施例中,头部502包括TunnelToAcc命令的命令代码。头部502还可以包括其他信息,例如指定净荷504的大小的信息。在一些实施例中,可选尾部506可被包括在分组500的结尾处;尾部可以包括可用来检错或纠错的信息(例如,校验和)和/或所需要的其它信息。本领域技术人员将认识到,各种分组类型可被用在附件通信协议中。
图5B示出了应用协议分组510的示例。在此示例中,应用协议分组510包括头部512(应用头部)、净荷514(应用净荷)和尾部516。各种其它分组类型、风格、配置、净荷、信息区域等可被用在应用协议分组中。实际上,应用和/或附件可以使用如应用开发者所设计、开发和/或创建的任何类型、大小、配置等的应用协议分组而没有限制;在一些实施例中,一些或所有应用协议分组可以模仿附件通信协议分组(或者甚至不能通过内容与附件通信协议分组区分开)。在一些实施例中,应用协议分组可以包括或者可以不包括头部。在一些实施例中,应用协议分组可以包括或可以不包括尾部。在一些实施例中,应用协议分组可以包括具有固定大小或可变大小的净荷514。在一些实施例中,命令、数据和/或其它消息元素可被设置在净荷和/或头部内。命令和/或数据和/或其它消息元素的具体特性可由应用协议来指定。此外,应用协议根本不需要使用用于消息的分组结构;附件协议消息可以具有能够被接收者正确解释的任何格式和/或结构。
图5C示出了被封装(或包装)在附件协议分组520的净荷504内的应用协议分组510的示例。如图所示,分组520可以包括附件协议分组头部502,其后跟随有应用协议分组510。在一些实施例中,头部502可以包括指示净荷是应用协议分组的命令或字节代码。在此示例中,应用协议分组包括应用协议分组头部512、应用协议分组净荷514和应用协议分组尾部516。应用协议分组510可以或者可以不完全填满附件协议分组520的净荷504。更一般地,用于TunnelToAcc命令的附件协议分组可以包括打算递送给附件的任何数据包并且不局限于运载单个附件协议分组。
再次参考图4,附件402例如在端口422处接收附件协议TunnelToAcc命令分组。端口422可以将该TunnelToAcc命令分组路由到协议解释器424,协议解释器424例如可以是运行在附件402的控制器或其它处理器上的软件处理。协议解释器424可以读取该TunnelToAcc命令,提取包含在其中的包,并且将包转发给运行在附件402的控制器或其它处理器上的另一处理426。处理426可以包括能够处理遵守应用协议的所接收信息的任何处理。例如,处理426可以包括从所接收信息提取指令并生成用于附件特定硬件(例如,图2的附件特定硬件275)的对应控制信号的处理。
从附件402到移动计算设备400的通信也被支持。例如,处理426可以生成与应用协议中的消息相对应的数据包并且将该包提供给协议解释器424以被发送给移动计算设备400。协议解释器424可以将该包封装在附件通信协议的TunnelToAcc命令内部(例如,类似于图5A-5C所示的示例)并且将命令发送给端口422以用于发送给移动计算设备400。
在移动计算设备400处,端口414接收该TunnelToAcc命令分组并将其转发给协议管理器410。协议管理器410识别该TunnelToAcc命令,并且响应于该TunnelToAcc命令提取包,并将该包以及与该包相关联的应用协议和附件的标识转发给支持层408。在一些实施例中,协议管理器410可以基于递送该TunnelToAcc命令的端口来确定这些标识符;因此,TunnelToAcc命令无需提供附件或应用协议的标识。
支持层408使用附件和附件协议标识符来将包引导至会话406的输入流。应用404随后可以从会话406的输入流读取到来数据,根据应用协议解释该数据并且相对应地作出响应。
因此,例如,应用404可以是温度计应用并且附件402可以包括温度计。应用404可以利用适当的应用协议(例如,名为“com.temprus.thermometer1”的协议)从附件402请求温度测量。该应用协议例如可以指定Get Temp(获取温度)命令,该命令由应用发送来从附件请求温度数据。应用404可以创建例如包括Get Temp命令以及与该命令相关联的任何优选项或变量(例如,是以华氏度还是以摄氏度返回温度数据)的应用协议分组。应用404可以创建具有如应用协议所定义的合适头部和/或尾部的分组。应用404随后可以将该分组作为应用协议消息传递到会话406的输出流中。会话406可以指导协议管理器410发送指定了应用协议是“com.temprus.thermometer1”的附件协议隧道传输命令。协议管理器410可以将Get Temp命令封装在附件通信协议的TunnelToAcc命令分组内,并且还可以查找应用协议名称并确定该应用协议与端口414相关联。协议管理器410随后可以将该TunnelToAcc命令分组路由到端口414以用于递送给附件402。
附件402可以在端口422处接收该TunnelToAcc命令。协议解释器424可以提取Get Temp命令分组并将其递送给处理426,在此示例中,处理426可以是控制温度传感器并从其接收数据的处理。因此,处理426可以获取将被返回给应用404的温度数据。为了发送数据,处理426例如可以生成遵守应用协议的Send Temp(发送温度)命令分组。该分组可以包括被请求的温度数据(例如,利用在Get Temp命令中指定的温标)。处理426可以将Send Temp命令分组作为包提供给协议解释器424,该SendTemp命令分组带有其应当被发送给移动计算设备400的指示。协议解释器424可以将Send Temp命令分组封装在附件通信协议的TunnelToHost命令内,并且端口422可以将TunnelToHost命令传输给移动计算设备400的端口414。端口414可以将到来的TunnelToHost命令递送给协议管理器410,协议管理器410可以提取包(在此情况中,为Send Temp命令分组)并将该包以及从端口映射412确定的该包与“com.temprus.thermometer1”协议相关联的信息提供给支持层408。支持层408随后可以将该包引导至会话406,具体地引导至会话406的输入流。应用404可以从输入流读取该包,将其识别为遵守应用协议的SendTemp命令分组,并且提取温度数据。
在一些实施例中,附件可以使用应用协议以及附件通信协议的命令两者来与附件通信。图6图示出了图4的实施例中的附件通信协议的命令的路径。除了经由会话406发送应用协议消息以外,应用404还可以通过向支持层406作出适当的API调用来调用附件协议命令,其可以指示协议管理器410经由端口414向附件402发送附件协议命令(这里被表示为“移动计算设备ProtCmdOut”)。类似地,从附件402接收的附件协议命令(在这里被表示为“移动计算设备ProtCmdIn”)可由协议管理器410接收并处理,并且协议管理器可以将该命令传输给支持层406。支持层406进而可以相应地遵照应用404行事。
在一些实施例中,应用协议可以包括由附件通信协议指定的专门语言和/或命令。例如,附件通信协议可以定义允许用户通过移动计算设备来控制射频调谐器附件的调谐器专门语言RFTuner。例如,RFTuner专门语言可以包括用于打开和关闭接收机、改变台站等的命令。在一些实施例中,无线电调谐器应用可以在移动计算设备处运行,并且在移动计算设备处运行的无线电调谐器应用和无线电调谐器附件可以支持无线电调谐器应用协议,该应用协议允许无线电调谐器附件与无线电调谐器应用通信。RFTuner专门语言的一些或所有命令可被用于无线电调谐器应用协议,并且无线电调谐器应用协议也可以包括其他命令(例如,控制预设的用户喜欢的台站列表的命令)。因此,无线电调谐器应用可以使用RFTuner专门语言作为无线电调谐器应用协议的一部分来与无线电调谐器附件通信(例如,用于改变台站),并且还可以将无线电调谐器应用协议的其它命令用于其它操作。移动计算设备还可以使用RFTuner专门语言作为附件通信协议的一部分,独立于应用来与无线电调谐器附件通信。因此,无线电调谐器附件可以利用这两种协议的任一种内的单个专门语言来向移动计算设备发送命令和/或消息。
作为另一示例,RFTuner专门语言可以包括RFSetFreq命令,该RFSetFreq命令从移动计算设备(例如,在移动计算设备处运行的应用)被发送来将无线电调谐器附件调谐为该命令中包括的频率。无线电调谐器应用可以创建具有如应用协议所定义的合适头部和/或尾部的分组,并且将RFSetFreq命令和所需频率包括在分组净荷中。该分组随后可被发送给协议管理器,协议管理器可以将该分组与附件通信协议的命令(例如,如上所述的TunnelToAcc命令)捆包到附件协议分组中。附件协议分组随后可被发送给附件。作为另一示例,RFSetFreq命令可以在没有无线电调谐器附件并且不被隧道传输的情况下使用。移动计算设备可以将使用附件通信协议、使用RFSetFreq命令和关联频率的分组作为独立分组发送给附件。
作为又一示例,附件可以利用应用协议和/或附件通信协议中的任一者,使用RFTuner专门语言来与移动计算设备通信。例如,当与移动计算设备处的具体应用通信时,附件可以使用TunnelToHost命令来将RFTuner命令隧道传输到移动计算设备。作为另一示例,附件可以发送RFTuner命令而不隧道传输给移动计算设备。
在另一实施例中,诸如扬声器坞座之类的附件可以提供对移动计算设备上的媒体回放的远程控制。远程控制功能可以利用附件通信协议的命令来实现;例如,附件通信协议可以包括由附件发送来标识用户调用的特定功能(例如,播放、暂停、下一首、前一首等)的ButtonStatus(按钮状态)命令。移动计算设备可以具有用于所存储媒体的回放引擎,该回放引擎可以处理ButtonStatus命令并且相应地作出响应。在移动计算设备上运行的应用可以提供对例如来自因特网数据流的其它媒体源的回放。希望用户能够通过以用户控制所存储媒体的回放相同的方式来操作附件从而远程地控制流传输内容的回放。因此,可以定义“流传输控制”应用协议,其包括控制流传输内容的回放的命令或其它控制信号。用户完全可以以控制所存储媒体内容或流传输媒体内容中的任一者的回放相同的方式来操作附件。如果所存储内容正被播放,则附件可以利用附件通信协议(例如,ButtonStatus命令)将远程控制信息传输给回放引擎。如果流传输内容正被播放,则附件可以利用流传输控制应用协议来将远程控制信息传输给应用。在一个实施例中,附件通信协议的ButtonStatus命令可被结合到流传输控制应用协议中。
在又一实施例中,附件可以向移动计算设备发送位置信息。位置信息可以包括表示附件和/或移动计算设备的位置的任何信息并且可以利用各种方式来确定,例如利用全球定位系统(GPS)接收机和/或基于与附近移动电话网络接入点有关的信息对位置进行三角测量。附件通信协议可以提供可由附件用来向移动计算设备发送位置信息的“位置”专门语言。然而,应用可使用不是以位置专门语言提供的位置信息。这样的信息可由附件利用特定于附件的协议发送给该应用。因此,取决于位置信息将如何被使用,同一附件可以利用附件通信协议的位置专门语言或特定于附件的协议来将位置信息发送给移动计算设备。
将理解,这里描述的通信路径是说明性的,并且变更和修改是可以的。例如,路径可以在附件和/或移动计算设备侧包括更多或更少的层。在一些实施例中,每个移动计算设备隧道传输分组将包含一个附件协议消息,但这不是必须的。例如,如果接收者(根据情况可能为附件或应用)能够从多个所接收数据包重构消息,则单个附件协议消息可以利用多个移动计算设备隧道传输分组被发送。类似地,如果接收者能够将包解析为多个消息,则单个移动计算设备隧道传输分组可被允许包含多个附件协议消息。
在描述图4时,假定了应用404已经与兼容附件402建立了会话406。现在将描述使得应用能够标识兼容附件(或反之)并建立会话的技术的示例。
图7是根据本发明实施例的用于标识附件和兼容应用的处理700的流程图。处理700可以开始于块702。在块704,移动计算设备可以判断附件是否已被连接。例如,移动计算设备可以检测附件是否物理地与连接器相耦合(例如,如图1A所示)或者附件是否无线地与移动计算设备相耦合(例如,如图1B所示)。如上面提到的,可以认为每当移动计算设备与附件之间的有线或无线通信信道开通时附件就被连接上,并且块704可以包括检测这样的信道的开通。在移动计算设备处运行的应用管理器可以监视硬件连接或通信模块以判断移动计算设备与附件之间的通信信道是否开通。
在块706,移动计算设备可以接收来自附件的应用协议信息。在一些实施例中,该信息可以利用由附件通信协议定义的分组来传输。在其它实施例中,可以以附件和移动计算使设备中的任一者或两者理解的方式来传输应用协议信息。例如,可以利用诸如USB协议、蓝牙协议或WiFi协议之类的任何产业标准通信协议来传输应用协议信息。例如,附件通信协议可以指定附件可发送给移动计算设备以提供关于其自身及其能力的信息的一个或多个命令以及关联数据格式;在一些实施例中,这些命令可以是附件通信协议的一般专门语言的一部分。由附件提供的信息可以包括附件所支持的(一个或多个)应用通信协议的(一个或多个)名称的文本串。例如可利用如上所述的反向域名协定或任何其它所希望的命名协定来指定名称。附件还可以发送其它标识信息。例如,附件可以发送标识其类型;制造商;型号名称;序列号;硬件、软件和/或固件版本;等的信息。附件还可以发送指示其能够使用或希望使用的移动计算设备的能力的信息。例如,附件可以指定其可使用附件通信协议的哪种专门语言、其是从移动计算设备接收音频和/或视频信号还是向移动计算设备提供音频和/或视频信号、移动计算设备的优选初始操作状态(例如,音频和/或视频信号交换最初是应当被使能还是被禁用、音频和/或视频信号的优选格式)等等。
在其它实施例中,可以通过查阅应用商店或通过因特网从服务器指定应用协议。例如,当附件与移动计算设备相耦合时,移动计算设备可以从应用商店和/或通过因特网从服务器请求应用协议信息。在一个实施例中,移动计算设备可以将诸如附件制造商、型号名称和/或序列号之类的附件标识信息发送给应用商店或其它服务器并且作为响应接收应用协议信息。从附件发送来的应用协议信息例如可以包括应用协议名称;指定了各种应用协议命令、消息和/或分组规范的文件;与应用协议兼容的附件的列表;与应用协议兼容的应用的列表;可下载应用或应用更新的网络位置的指示;等等。应用协议信息可以以元数据格式被发送。在一些实施例中,可通过应用商店或因特网来获得应用协议的各种版本。例如,应用协议的不同版本可允许各种功能水平并且可以不同价格被提供用于移动计算设备。例如,可使得能够获得“简化”版、免费版、完全版、展示版等。例如,完全版可以定义可由移动计算设备和/或附件使用的命令集,而简化版定义完全版所定义的命令的子集。
在一些实施例中,当应用协议被传输给移动计算设备时可以被计数。附件可以利用与每个应用有关的某种类型的指示或者索引号来标识每个所支持应用协议。例如,附件可以发送指示索引1是应用协议1、索引2是应用协议2以及索引3是应用协议3的消息。可以利用任何类型的指示,例如利用反向域名协定来指示每个应用协议。以后可以利用它们的索引号来查阅这些协议。这样的计数可被用在在整个本公开中描述的实施例中。
在块708,移动计算设备可以根据附件通信协议利用认证过程来认证附件。这些过程例如可以包括基于存储在移动计算设备中的公钥证书和由各个附件持有的私钥的认证技术和/或其它技术。在一些实施例中,移动计算设备可以在连接和标识时(例如,在块706之后)来认证每个附件。在其它实施例中,移动计算设备可以在块706的认证之前或期间来认证每个附件,并且在其它实施例中,认证可以在本处理的稍后时间发生或者根本不发生。例如,在一些实施例中,移动计算设备准许与附件通信协议相关联的某些特征和/或操作仅由经过认证的附件访问;这样的“受约束访问”特征可以包括与附件协议命令(例如,上述隧道传输命令可以是受约束访问命令)的传输有关的特征。移动计算设备可以等待直到附件试图使用受约束访问特征才对附件进行认证,或者移动计算设备可以在接收到指示附件将要或可能试图使用受约束访问特征的信息之后的任何时间对附件进行认证。
在块710,移动计算设备随后可以利用在块706处提供的应用协议信息来创建和/或更新“相连”应用协议列表。例如,参考图3,端口映射325和/或附件信息表330可被更新为将新连接附件及其(一个或多个)应用协议与端口相关联。在块706处提供的任何附件标识信息都可被移动计算设备存储在相连应用协议列表中。相连协议列表的一个示例在图8中被示为表820。表820列出了当前相连附件与附件连接到的端口相关联地被标识的每个应用协议。(因此,表820可以是图3的端口映射325的示例)。将明白,表820的格式和信息内容可以按需改变。
再次参考图7,在块712,移动计算设备可以判断使用与附件相关联的(一个或多个)应用协议的应用是否可用(这样的应用在此被称为“兼容的”应用)。例如,移动计算设备可以存储所支持的应用协议的表,其中每个协议被与支持它的一个应用(或多个应用)相关联。所支持应用协议表的一个示例在图8中被示为表810。表810包括应用协议名称的列表,并且每个应用协议名称被与一个或多个应用的标识符相关联。在一些实施例中,表810可被实现为查找表,该查找表可利用应用协议的名称被访问以返回应用标识符;表810还可以利用应用标识符来访问以返回与特定应用相关联的应用协议列表。
在一些实施例中,表810仅包括与当前运行的应用相关联的应用协议。例如,当应用启动时,其可以利用其需要和/或可使用的任何应用协议的列表来提供移动计算设备(例如,图3的支持层315)的系统处理。移动计算设备系统处理因此可以更新表810。在其它实施例中,表810可以是针对安装在移动计算设备上的所有应用被维护的永久表。例如,安装(或更新)应用可以包括向移动计算设备(例如支持层315)的系统处理通知应用需要和/或能够使用的任何应用协议;移动计算设备因此可以更新表810。
在一些实施例中,当附件与移动计算设备相耦合时,附件例如可以通过利用与附件通信协议相关联的附件标识专门语言来发送标识信息从而标识其自身。标识信息可由移动计算设备用来例如通过查阅表810来选择适当的应用通信协议。在一些实施例中,移动计算设备可以通过因特网将附件标识信息发送给应用商店和/或服务器以标识与附件兼容的应用通信协议。在一些实施例中,应用商店和/或服务器可以发送详述了与附件兼容的应用通信协议的文件。在一些实施例中,附件可以不将应用协议信息发送给移动计算设备,而是附件可以发送随后由移动计算使设备使用来选择合适的应用通信协议的附件标识信息。
再次参考图7的块712,在所支持应用协议表(例如,图8的表810)被提供的实施例中,移动计算设备可以通过利用新连接附件的协议名称访问所支持协议表来判断兼容应用是否可用。例如,如图8所示,如果新连接附件提供protocolString{c}作为其应用协议标识符,则处理700的块712可以包括在所支持协议表810中查找protocolString{c},并且由此判定应用“App8”与该应用协议相关联。在此情况中,块712将得出应用可用的判定。如图8进一步示出的,如果新连接附件提供protocolString{x}作为其应用协议,则在表810中找不到匹配,并且处理700的块712将得出没有兼容应用可用的判定。
如果没有兼容应用可用,则处理700可以在块714中辅助定位并获得兼容应用。例如,移动计算设备可以将用户指引向应用商店(例如,由苹果公司提供的商店)或用于购买和/或下载应用的其它资源。各种类型的辅助可被提供。例如,在一些实施例中,在块706中提供给移动计算设备的附件信息可以包括用于附件的优选应用的标识符。该标识符可以是特定应用商店中的优选应用的唯一产品标识符、URL(统一资源定位符,例如万维网地址)等等。移动计算设备可以利用该信息来定位优选应用并且提示以后购买和/或下载该应用。
在其它实施例中,移动计算设备可以使用应用协议信息并利用或不利用其它附件标识信息,例如在应用商店内搜索兼容应用。例如,如图9所示,移动计算设备可以利用相连应用协议中的一个或多个和/或附件所提供的优选应用的标识符(被表示为appCode 830)来制定查询825。移动计算设备可以将查询825发送给与应用商店或另一目的地处的搜索相关联的URL 840。在所示示例中,该查询包括所有相连应用协议(通过逻辑“或”操作符相链接)的列表以及优选应用的appCode 830。在多个应用与该查询相匹配的情况中,优选应用830可由应用商店用来高亮该优选应用(假定其在匹配列表上)。因此,即使支持相连协议列表820中的一个或多个应用协议的多个应用可被列出,优选应用830也可以是默认应用并且例如可以如此被列出在结果列表的顶部和/或利用用于将其标识为优选的符号、词语或标志被标记。在一些实施例中,可以向优选应用的多于一个版本提供排名,以使得可以向用户呈现分级列表。例如,优选应用的专业版(pro version)、标准版和/或免费版都可被提供。
响应于查询,应用商店可以返回一个或多个兼容应用的列表,并且移动计算设备可以提示用户选择兼容应用进行下载。在一些实施例中,应用可以在下载后立即被安装;在其它实施例中,可以分开地提示用户下载并且然后安装应用。在其它实施例中,可能需要用户购买该应用。在一些实施例中,可以利用信用卡和/或经由先前建立的账户来通过应用商店进行购买。
在其它实施例中,兼容应用可以预先存储在附件本身上,并且附件通信协议可以包括允许附件指示其存储有兼容应用的命令;响应于这样的指示,移动计算设备可以从附件上载该兼容应用并安装它。(在一些实施例中,移动计算设备可以在上载和/或安装附件提供的应用之前提示用户进行批准。
再次参考图7,在块716,判断兼容应用现在是否可用并被安装。(例如,兼容应用可能尚未被定位到或者用户可能选择不购买或下载它。)如果为否定的,则处理700可以在块718处结束。
如果在块716中兼容应用可用(先前安装的或者刚经由块714安装的),则在块72处,移动计算设备可以判断该兼容应用是否已经运行。如果尚未运行,则可以在块722处启动该应用。取决于实施方式,块722可以包括提示用户确认应用应当被启动。
在块724,应用可以与附件通信。在一些实施例中,块724可以包括创建会话并经由该会话发送和/或接收应用协议命令,例如如上所述的。块724还可以包括利用附件通信协议来发送和/或接收命令以及其它信息。因此,相同的应用和附件可以使用该附件通信协议所支持的功能并且还可以利用可能与或可能不与附件通信协议所支持的功能相重叠的应用协议来交换其它信息、控制信号、数据等。通信可以不限期地持续,例如直到附件从移动计算使设备断开连接和/或应用存在为止。此时,处理700可以结束(块718)。
处理700可以利用移动计算设备处的硬件、软件和/或固件来实现。例如,系统处理和/或应用可以运行来控制移动计算设备的功能以执行上面描述的动作。
在一些实施例中,即使在附件断开连接之后,移动计算设备也可以维护曾经连接到该移动计算设备的任何附件所支持的所有或多个应用协议的永久列表。当移动计算设备与应用商店通信时,移动计算设备可以将该永久列表上的一些或所有协议提供给应用商店(例如,作为针对宿留该应用商店的服务器的搜索查询),并且应用商店可以基于该列表来建议用户可能感兴趣的应用。例如,应用商店可以标识出使用(一个或多个)相同应用协议的其它应用。如果永久列表还包括标识与每个应用协议相关联的特定附件的信息,则由应用商店提供的信息可以将特定附件标识为与所标识应用兼容。这可以辅助用户选择要购买和/或下载的应用。
图10是根据本发明实施例的可由应用运行来开始与附件的通信的处理1000的流程图。处理1000例如可以在移动计算设备上的应用被启动时开始(块1002)。例如,用户可以手动地启动应用或者可以由移动计算设备响应于附件连接自动地启动应用(例如,如上面参考图7所述的)。
在块1004,应用进行检查以判断兼容附件是否被连接。(如这里使用的,如果附件支持特定应用所需的和/或可使用的应用协议,则该附件与该应用“兼容”。)例如,在移动计算设备维护诸如图8的表820之类的相连附件表的实施例中,应用可以利用所需应用协议的名称来查询该表以判断兼容附件是否被连接。该查询例如可以包括调用API功能调用来与支持层(例如,图3的支持层315)通信。
如果在块1006处兼容附件未被连接,则应用可以在块1008处等待某个时间量并且然后再试。如果例如超时时段已到,则处理1000在块1020处结束。在一些实施例中,当在块1008处等待时,应用可以向用户生成用于提示用户连接兼容附件的消息。在一些实施例中,应用可以向移动计算设备系统服务注册并且请求在兼容附件变得可用时被通知,而不是重复检查。在其它实施例中,如果兼容附件未被连接,则应用可以退出并且还可向用户通知除非兼容附件被连接否则应用不会运行,或者应用可以以减少的功能来运行。
如果在块1010处检测到兼容附件,则应用可以发起与该附件的会话。例如,附件可以调用支持层408的API调用(参见图4)或应用管理器(参见图14)来创建与特定附件和应用协议相关联的会话(例如,图4的会话406)。在图10中由块1012代表的会话可以无限期地持续。如上所述,在会话期间,应用可以利用与该会话相关联的应用协议来发送和/或接收消息(例如,控制信号、数据、状态和/或其它信息),并且就所需功能在附件通信协议内得到支持而言,应用还可以利用附件通信协议来发送和/或接收消息。
会话最终可以结束。例如,在块1014,应用可以判定会话应当被结束(例如,响应于退出应用或指示不再使用该附件的用户指令)并且可以响应于这样的判定在块1016处终止会话。作为另一示例,在块1018,应用可被通知附件已断开连接;这也可以导致块1016处的会话终止。块1016处的会话终止例如可以包括调用API调用来解除或关闭会话对象并且释放关联资源。例如,在针对附件与应用协议的给定组合仅准许一次一个会话的实施例中,会话终止可以发信号向移动计算设备通知附件及其协议现在可用在例如与不同应用的另一会话中。在一些实施例中,终止会话可使附件断开连接(例如,移动计算设备可以关闭端口);在其它实施例中,附件可以在会话终止之后保持连接;并且在其它实施例中,应用可以就在会话终止时是否使附件断开连接向移动计算设备系统服务做出指示。
一旦会话终止,处理1000就可结束。在一些实施例中,如果在会话终止之后应用仍然运行,则处理1000可以返回块1004以寻找兼容附件并开始新的会话。
将理解,这里描述的附件通信协议是说明性的并且变更和修改是可以的。顺序地被描述的动作可以并行地被运行,动作的顺序可被修改,和/或动作可被添加、省略或组合。
在一些实施例中,移动计算设备可以支持到多个附件的同时连接和/或多个应用的同时运行。因此,单个应用可以同时与多个附件交互或者单个附件可以同时与多个应用交互。
例如,图11图示出了根据本发明一些实施例的同时与附件A 1106和附件B 1108交互的移动计算设备1102上的应用1100。附件A 1106和附件B 1108可以是不同类型的附件,或者他们可以是类似的或者甚至相同的附件。在此示例中,每个附件连接到不同端口;因此,附件A 1106连接到端口1110,并且附件B 1108连接到端口1112。应用1110已创建了两个会话1114、1116。会话1112与附件1104相关联并且使用应用协议A1,而会话1114与附件A 1106相关联并且使用应用协议B1。会话1112和1114彼此独立;任一者可在不影响另一者的情况下被发起、使用和/或终止。在一些实施例中,会话可以是特定于协议的。端口1110可以使用附件通信协议来为遵守协议A1的消息提供“隧道”以在移动计算设备1102与附件1106之间传递,并且端口1112可以使用(相同)附件通信协议来为遵守协议B1的消息提供分离的隧道以在移动计算设备1102与附件1108之间传递。将明白,根据需要,应用协议A1和B1可以是不同协议或相同协议。此外,虽然示出了两个附件和两个会话,但是只要移动计算设备上有足够的硬件和/或软件资源(例如,端口和/或会话)可用,就可按这里描述的方式将任意数目的附件和会话与特定应用相连。
图12图示出根据本发明一些实施例的在移动计算设备1204上运行并且同时与附件A 1206和附件B 1208交互的两个应用,即,应用11200和应用21202。附件A 1206和附件B 1208可以是不同类型的附件,或者它们可以是类似的或者甚至相同的附件。在此示例中,每个附件被连接在不同端口上;因此,附件A 1206连接到端口1210,并且附件B 1208连接到端口1212。应用11200已创建了与附件A 1206和应用协议A1相关联的会话1214,并且应用21202已创建了与附件B 1208和应用协议B1相关联的会话1216。会话1212和会话1214彼此独立;任一者可在不影响另一者的情况下被发起、使用和/或终止。端口1210可以使用附件通信协议来为遵守应用协议A1的消息提供“隧道”以在移动计算设备1204与附件1106之间传递,并且端口1212可以使用(相同)附件通信协议来为遵守应用协议B1的消息提供分离的隧道以在移动计算设备1204与附件1208之间传递。与如11一样,将明白,根据需要,应用协议A1和B1可以是不同协议或相同协议。此外,虽然示出了两个附件、两个应用和两个会话,但是只要移动计算设备上有足够的硬件和/或软件资源(例如,端口和/或会话)可用,就可按这里描述的方式同时支持任意数目的附件、会话和/或应用。
图13图示出根据本发明一些实施例的在移动计算设备1304上运行并且同时与附件1306交互的两个应用,即,应用11300和应用21302。在此示例中,附件1306支持两个不同应用协议(A1和A2)。协议A1和A2可以仅名称不同,或者它们可以是两个不同的、可能不兼容的协议。附件1306在与协议A1相关联的端口1310上被连接到移动计算设备1304,并且也在与协议A2相关联的端口1312上被连接到移动计算设备1304。应用11300已创建了与附件1306和应用协议A1相关联的会话1314,并且因此可以经由端口1310与附件1306通信。类似地,应用21302已创建了与附件1306和应用协议A2相关联的会话1316,并且因此可以经由端口1312与附件1306通信。会话1312和会话1314彼此独立;任一者可在不影响另一者的情况下被发起、使用和/或终止。端口1310可以使用附件通信协议来为遵守应用协议A1的消息提供隧道以在移动计算设备1304与附件1306之间传递,并且端口1312可以使用(相同)附件通信协议来为遵守应用协议A2的消息提供分离的隧道以在移动计算设备1304与附件1306之间传递。虽然示出了两个应用和两个会话,但是只要移动计算设备上有足够的硬件和/或软件资源(例如,端口和/或会话)可用,就可按这里描述的方式将任意数目的附件、会话和/或应用同时连接到同一附件。
将理解,图11-13的系统配置是说明性的并且变更和修改是可以的。例如,可以利用任意数目的会话和端口来将任意数目的应用和任意数目的附件相连接。如上所述,会议可以是软件实体,其向应用隐藏物理连接的细节(例如,端口等)。因此,应用不必知道兼容附件为了与之通信而连接到的端口。此外,通信路径还可以包括其他中间层(例如,如上所述的协议管理器和/或协议后台程序层)。
应用管理器可用来抽象化应用与通信端口之间的通信连接,以使得通信协议的详情对于应用程序来说是透明的。在一些实施例中,当通信连接被抽象化时,应用程序可以通过向输出流写入数据并从输入流读取数据来与附件通信,而无需知道其正与其通信的附件的细节。这可以利用应用管理器来进行。
在一些实施例中,应用管理器可以包括图4所示的支持层408或协议管理器410的部分或者由其来实现。图14图示出了这样的抽象化的示例。该图示出了在根据本发明一些实施例的移动计算设备的应用层1402、应用管理器1404和硬件传输层1406之间的数据流程。应用层1402可以是运行在移动计算设备上的任何种类的处理。硬件传输层1402可以包括移动计算设备与附件之间的任何类型的硬件接口或软件接口。
应用管理器1404可以经由硬件传输层1406并经由应用层1402来提供附件之间的通信接口。为了实现此,通信可被抽象化以使得应用1402不知道它正与之通信的附件的细节或者附件被耦合的端口的细节。应用管理器1404可以是作为移动计算设备的操作系统一部分的后台处理或者在移动计算设备处运行的另一后台处理。应用管理器1404可以向应用提供可用来与附件通信的输入和输出流。
在一些实施例中,应用管理器1404可以管理与移动计算设备相耦合的相连附件并且可以通过硬件传输层1406被访问。应用管理器1404还可以管理在移动计算设备上运行的或安装在移动计算设备上的应用的附件通信特征。在这两种情况中,应用管理器1404可以存储与附件和/或应用相关联的应用协议信息。图15-18示出了可被实现来利用应用管理器建立会话并在应用与附件之间提供通信的各种处理。
图15是根据本发明一些实施例的可由移动计算设备处的应用管理器运行来建立并管理会话的处理1500的流程图。处理1500可在块1502处开始。在块1504处,应用管理器监视通信端口以判断附件是否已与移动计算设备相连接(即,是否在通信中)。在一些实施例中,应用管理器可以监视物理连接器的硬件状态来判断附件是否与移动计算设备相耦合。在一些实施例中,应用管理器可以从WiFi或蓝牙模块接收指示无线连接已被建立的指示。不管端口的类型如何,应用管理器都可以判断是否已与附件建立了通信信道。在块1506,处理1500持续监视附件是否与移动计算设备相耦合。
一旦在块1506处判断出通信信道已被建立,处理1500随后可以在块1508处执行认证处理。认证可以通过利用附件协议在移动计算设备与附件之间发送各种消息来进行。一旦附件通过认证并被准许与移动计算设备通信,就可在块1510处接收附件能力信息。能力信息可以包括指示与附件兼容的一个或多个应用协议的信息。例如可以利用如上所述的反向域名协定或者指示应用协议的任何其它协定来指示应用协议。在块1512处,该信息的一些或全部可被存储在移动计算设备的存储器中。具体地,应用协议可被存储在将应用协议与附件被耦合的通信端口相关联的查找表中(例如,图8的相连应用协议表820)。
在块1514处,应用管理器可以利用附件所支持的应用协议来判断是否允许附件与移动计算设备或者在移动计算设备上运行的应用之间的通信。在一些实施例中,如果支持附件所支持的应用协议的应用(或其它处理)在移动计算设备山运行,则通信可被允许。例如,应用管理器可将在移动计算设备上运行的应用所支持的应用协议与存储在查找表中的应用协议相比较。附件与应用之间的通信可以利用应用协议来进行。在一些实施例中,应用协议消息可以在附件协议消息内被隧道传输或者被嵌入在附件协议消息内(例如,通过将应用协议消息包装在附件协议消息内)。只要在块1516处附件未从移动计算设备解除耦合和/或在块1518处应用的运行未终止,通信就可继续。否则,在一些实施例中,可在块1520处移除存储在查找表中的应用协议,并且处理1500可在块1522处结束。
图16是根据本发明一些实施例的可由移动计算设备处的应用管理器运行来协调附件与应用之间的通信的处理的另一流程图。处理1600可以开始于块1605。在块1610处,应用管理器可以接收来自在移动计算设备处运行的应用的对附件信息的请求。如果在块1615处附件未被附接,则可将指示此的消息发送给该应用,并且处理1600可以返回块1610并等待直到附件与MCD相耦合为止,或者在一些实施例中处理1600可以结束。如果附件与移动计算设备相连,则在块1620处,应用管理器可以向应用提供附件信息,该附件信息包括与移动计算设备相耦合的每个附件所支持的任何应用协议的指示。应用管理器例如可以利用反向域名协定来将任何或所有应用协议信息(包括附件支持的应用协议)作为元数据发送。每个应用协议可被与应用协议标识符相关联。
在一些实施例中,不是请求附件信息,应用可以向应用管理器发送应用协议数据。并且应用管理器可以从查找表(例如,相连应用协议表820)中选择与从应用发送来的应用协议数据兼容的应用协议(如果存在这样的应用协议的话)。
在块1625,应用可以举行针对应用协议的通信会话并且例如可以利用应用协议标识符来向应用管理器指示该协议。当实现此时,应用可以在不指定与附件或端口有关的任何事物的情况下做出请求。响应于通信会话的举行,应用管理器可以在块1630处向应用提供与会话相关联的输出流和输入流。在一些实施例中,通信会话针对与特定附件相关联的特定协议举行。因此可利用多个协议来创建多个会话以用于与一个或多个附件通信。
在块1635处,应用管理器可以从利用与通信会话相关联的应用协议的应用接收应用协议消息。应用协议消息可以在应用管理器处利用在块1630中提供的输出流来接收。应用管理器随后可以在块1640处将应用协议消息与附件协议包装材料包装在一起。在一些实施例中,这种包装可以包括将应用协议消息嵌入在附件协议消息内(例如,如图5A、5B和5C所示)。在一些实施例中,这种包装可以利用附件协议来隧道传输应用协议消息。在块1645处,经包装的应用协议消息可被发送给附件。处理1600随后可以进行到块1650。回到块1635,如果应用管理器在块1635中未接收到应用协议消息,则处理1600可以进行到块1650。
在块1650中,应用管理器可以从附件接收附件协议消息。附件协议消息可以包括包装在附件协议消息内的应用协议消息。在块1655中,可从应用协议消息中剥除附件协议包装材料;并且可在块1660中将应用协议消息发送给应用。
如果附件从移动计算设备断开连接1670或者应用在移动计算设备中停止运行1665,则处理600可在块1675处结束。否则处理返回块1635。
可在与移动计算设备相耦合的附件处执行的处理在图17中示出。处理1700可以在附件与移动计算设备相连时开始于块1702。在块1704,附件可以将指示附件所支持的应用协议的消息发送给移动计算设备。该消息可以是针对图15的块1510描述的附件能力的一部分。可以根据附件协议来发送该消息。附件可以利用反向域名协定(例如,如上所述的)来指示应用协议。当应用管理器在块1706中建立了通信会话时,移动计算设备可以利用附件协议向附件发送指示通信会话已被创建的消息。该消息或者后续消息可以指示用来创建该会话的应用协议,如块1708中所指示的。在一些实施例中,在块1708中,除了应用协议之外或者取代应用协议,还可以传输会话ID。在块1710中,可以在在块1712中利用应用协议与移动计算设备通信之前,利用附件协议从附件向移动计算设备发送确认消息。处理1700可以在块1714处结束。处理1700例如可以在用户或操作系统关闭应用时、在应用或操作系统关闭会话时和/或在附件断开连接时结束。
图18是根据本发明一些实施例的可由移动计算设备的应用运行来进行与附件的通信的处理1800的流程图。处理1800可以开始于块1805。在块1810,应用可从应用管理器请求与相连附件有关的信息。应用管理器可以通过向应用发送附件信息来作出响应,该附件信息可由应用在块1815处接收。可在块1815处从应用管理器被接收包括附件信息的响应。附件信息可以包括指示与移动计算设备相耦合的附件、与附件兼容的(一个或多个)应用协议和/或与这(一个或多个)应用协议相关联的标识符的信息。在一些实施例中,附件管理器可以将应用指引到相连应用协议的列表或表可被定位到的存储器位置。
在块1820,应用(或移动计算设备)可以判断应用协议中与所附接的附件兼容的任一个应用协议或单个应用协议是否与该应用所兼容的应用协议相匹配。如果匹配,则处理1800移到块1835。如果不匹配,则在块1825处,可以在因特网上(例如,在在线应用商店中)或者在移动计算设备上搜索兼容与附件相关联的应用协议的应用。在一些实施例中,附件信息可以包括指示用于该附件的优选应用的信息。在一些实施例中,在块1830中应用可在移动计算设备处被下载并被运行,并且处理1800可以移动到块1835。在一些实施例中,可从网络位置(例如,在线应用商店)下载提供与应用协议(其也与附件兼容)的兼容性的应用附加物或补丁。如果未下载新应用并且未找到兼容应用,则处理1800可以在块1865处结束。
在一些实施例中,在块1820,当在移动计算设备处未找到兼容应用或没有兼容应用可用时,可以执行三个选项中的一个。首先,提示用户他们是否想要从网络位置或应用商店搜索和/或下载兼容应用。处理可以根据用户的选择来进行。其次,移动计算设备可以在不提示用户的情况下从网络位置或应用商店搜索和/或下载兼容应用。再次,移动计算设备可以既不提示用户也不搜索兼容应用。在一些实施例中,附件可以发送指示移动计算设备应当采取以上三个选项中的哪一个的消息。可以在块1810或块1815中或之前发送该消息。在其它实施例中,可由用户来设定移动计算设备中的系统设置,该系统设置指示对于所有附件以上选项中的哪个应当被采取。
在块1835,应用可以举行与兼容应用协议相联系的通信会话。一旦会话被创建,在块1840中,应用管理器就可以为应用提供输入和输出流。在块1845中,应用可以通过将根据应用协议被格式化的数据写入输出流以及通过从输入流读取应用协议数据来与附件通信。
只要在块1850中判定附件与移动计算设备相耦合,并且在块1855中应用没有结束该会话,应用就可以利用由应用管理器提供的输入/输出流来与附件通信。否则,可以在块1860中终止会话并且可以在块1855中结束处理1800。
在本发明的一些实施例中,当附件与移动计算设备连接时,附件可以发送包含有指定优选应用的元数据的附件信息。该信息例如可以在标识阶段、认证阶段或能力阶段期间被发送。在一些实施例中,如果优选应用未在应用上运行并且被存储在移动计算设备处的存储器中,则应用可被自动启动。在一些实施例中,移动计算设备可以向用户提供询问用户他们是否想要启动优选应用的通知,并且如果用户作出肯定响应则启动该应用。
在本发明的一些实施例中,如果优选应用(即,附件优选的应用)中的任何一个被加载到移动计算设备上,则移动计算设备可以在用户界面的主屏幕画面上高亮与优选应用中的一个或每个优选应用有关的图标。因此,用户可以更容易地定位用于附件的兼容应用。例如,当高亮应用图标时,移动计算设备可以改变图标的颜色或阴影、使图标摆动或振动、放大图标、改变图标的形状、改变图标上的图片等。图标的任何方面都可被改变。
在本发明的其它实施例中,如果优选应用未被存储或加载到移动计算设备上,则移动计算设备可被引导至诸如应用商店之类的网络位置以下载优选应用。在一些实施例中,元数据可被保存,并且可以在稍后的时间从网络位置下载优选应用。例如,可在用户将web浏览器或应用商店引导至可下载优选应用的指定网络位置时下载应用。作为另一示例,可在用户具有用于下载优选应用的合适的无线连通性水平时下载应用。在一些实施例中,可在移动计算设备与主机计算机相耦合时加载优选应用。
此外,在一些实施例中,从附件发送给移动计算设备的元数据还可以包括指定在优选应用未与加载到移动计算设备上的应用相匹配时如何做出反应的信息。该指示可以是命令或消息的一部分。例如,附件可以指定优选应用必须与移动计算设备处的应用匹配并且该优选应用必须被下载来与附件交互。作为另一示例,附件可以指定优选应用,但是将利用兼容应用协议来与任何应用互操作。在此情况中,移动计算设备可以下载优选应用,但不是必须的。此外,在一些情况中,移动计算设备可以从用户请求关于是否下载优选应用或使用兼容应用的反馈。作为又一示例,附件可以指定移动计算设备从不从网络位置或应用商店搜索或下载应用。此外,在一些情形中,附件可以指定从不询问用户是否下载应用。在此场合中,附件可以在不与移动计算设备处的应用交互的情况下操作。
在本发明的又一实施例中,附件可与移动计算设备相耦合并且第一应用可以在移动计算设备处运行。第一应用可与应用协议相关联,该应用协议可以与或可以不与附件兼容,并且该应用可以与或可以不与附件通信。附件可以向移动计算设备发送指定了要运行的第二应用的命令。者可以响应于与用户的交互被启动;例如,根据来自用户的对附件处的按钮的按压被启动。移动计算设备随后可以响应于接收到该命令来运行第二应用。在一些实施例中,第一应用可以与第二应用并行地运行。在一些实施例中,第一应用可被关闭并且第二应用被加载。在一些实施例中,命令可以通过序列号和/或名称来指示应用。在一些实施例中,命令还可以指定可下载应用并且随后被执行的网络位置。此外,在一些实施例中,当没有应用在移动计算设备上运行或者当操作系统在移动计算设备上运行时附件可以请求第二应用运行。
虽然已相对于具体实施例描述了本发明,然而本领域技术人员将认识到可以有多种修改。例如,在这里描述的某些实施例中,在任何给定的时间端口最多与一个应用协议相关联。在其它实施例中,利用不同应用协议的通信可被多路复用在同一端口上,和/或利用相同应用协议与不同应用的通信可被多路复用在同一端口上。在这些实施例中,用于隧道传输附件协议消息(在任一方向上)的移动计算设备协议命令可以包括会话和/或应用协议标识符以辅助对附件协议消息进行合适处理。在一个这样的实施例中,当应用建立与特定附件和应用协议相关联的会话时,可利用附件通信协议的命令将该会话的标识符提供给附件。与该会话相关联的后续移动计算设备协议分组(例如,隧道传输命令分组)可以包括该会话标识符。因此,即使多个会话同时进行并且即使与多个会话有关的通信被多路复用到同一端口上,附件也可以将其可以发送或接收的任何附件协议消息与特定会话相关联。即使针对多个会话的通信被多路复用到单个端口上,附件然后也可以为多个会话维护各自的状态信息。
已描述了提供应用通信协议如何被用于应用和附件之间的通信的示例的本发明的实施例。在许多情况中,移动计算设备对于应用通信协议是不知的。一些实施例描述了附件和/或应用用来传输指定了应用通信协议的信息的方案。可以使用使得附件和/或应用知道使用哪个应用协议的各种其它技术。例如,移动计算设备可以包括具有所有的已知应用协议的表。附件和/或应用可以通过指向表的条目来指定应用协议。作为另一示例,应用可以从使用任意数目的通信协议的附件请求应用协议信息。作为另一示例,应用可以向附件指定该应用支持的任何协议并且附件可以选择要使用的应用协议。作为又一示例,可以使用位掩码,其中,预定的不同位掩码可用来表示各种应用协议。还可以使用用于标识应用协议的各种其它手段。
还公开了各种其它实施例。例如,公开了一种在附件处操作的、附件设备与在移动计算设备上运行的应用之间的通信方法。该方法可以包括:利用附件通信协议向所述移动设备传输指定了至少一个应用通信协议的信息;和/或利用所述附件通信协议与在所述移动设备处运行的应用通信。在一些实施例中,该方法还可以包括利用附件通信协议与在移动计算设备处运行的操作系统通信。
在一些实施例中,可在附件通信协议分组内隧道传输应用通信协议分组。在一些实施例中,该方法还可以包括从运行在所述移动通信设备上的应用接收应用通信协议命令并且响应于其改变所述附件的状态。在一些实施例中,该方法还可以包括响应于来自运行在所述移动计算设备上的应用的命令向运行在所述移动计算设备上的应用发送数据,其中所述数据可以利用所述应用通信协议被发送并且所述命令可以利用所述附件通信协议被接收。在一些实施例中,指定了至少一个应用通信协议的信息可以按反向域名协定被提供。在一些实施例中,该方法还可以包括利用所述附件通信协议通过所述附件来控制所述移动计算设备的功能。
公开了一种附件设备,该附件设备可以包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内并且被配置为与移动计算设备交换命令和数据,所述通信接口至少具有一个端口;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且可通信地与所述通信接口相耦合。所述控制逻辑可被配置为利用附件通信协议通过所述通信接口与运行在所述移动计算设备上的操作系统通信。所述控制逻辑可被配置为利用附件通信协议通过所述通信接口与运行在所述移动计算设备上的应用通信。
在一些实施例中,该控制逻辑还可被配置为利用附件通信协议传输指定了应用通信协议的信息。在一些实施例中,该控制逻辑还可被配置为利用标准通信协议而非附件通信协议来传输指定了应用通信协议的信息。在一些实施例中,可以利用反向域名协定来将应用通信协议信息传输给移动计算设备。在一些实施例中,通信接口可以包括无线通信接口。
一种用于在附件设备与运行在移动计算设备上的应用之间进行通信的方法,该方法在附件设备处操作。该方法可以包括:利用附件通信协议向移动计算设备传输附件信息;从移动计算设备接收会话标识符、应用协议标识符或举行连接命令中的至少一者;和/或此后利用应用通信协议与在移动计算设备处运行的应用通信。在一些实施例中,应用通信协议可以是与被传输给移动计算设备的应用协议串相关联的协议。在一些实施例中,附件信息可以包括应用协议串、与应用协议串相对应的应用协议索引、优选应用信息或附件通信协议信息中的至少一者。在一些实施例中,优选应用信息指定这样的应用,该应用支持利用与被传输给移动计算设备的应用协议串相关联的应用通信协议的通信。在一些实施例中,该通信可以包括利用附件控制移动计算设备的功能。在一些实施例中,应用通信协议串可以为反向域名协定的方式。
公开了另一种附件设备。该附件可以包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内,和/或被配置为可通信地与移动计算设备相耦合;附件硬件;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且可通信地与所述通信接口和附件特定硬件相耦合。该控制逻辑可被配置为利用附件通信协议通过所述通信接口向移动计算设备传输应用通信协议信息。控制逻辑可被配置为通过该通信接口与运行在移动计算设备处的应用建立通信会话,其中该通信会话使用应用通信协议来在附件和运行在移动计算设备处的应用之间进行通信。控制逻辑可被配置为利用附件通信协议从运行在移动计算设备上的应用接收数据。控制逻辑可被配置为响应于从运行在移动计算设备上的应用接收的数据来控制附件硬件的操作。
在一些实施例中,通信接口可以包括无线通信接口。在一些实施例中,控制逻辑还可被配置为利用应用通信协议从附件硬件接收硬件数据,和/或向在移动计算设备处运行的应用发送硬件数据。在一些实施例中,附件硬件可以包括并且硬件数据可以包括利用传感器收集的数据。在一些实施例中,附件硬件可以包括与电子设备的硬件接口并且硬件数据可以包括通过该硬件接口从电子设备接收的数据。在一些实施例中,附件硬件可以包括与电子设备的硬件接口,并且来自在移动计算设备处运行的应用的数据包括用于利用该硬件接口控制电子设备的数据。在一些实施例中,附件硬件可以包括显示装置,并且来自在移动计算设备处运行的应用的数据可以包括可显示信息。
公开了用于在附件设备与在移动设备上运行的应用之间进行通信的另一方法。该方法可以在移动设备上操作。该方法可以包括:标识附件设备,其中该标识使用附件通信协议;从附件设备接收指定了应用通信协议的信息,其中该信息利用附件通信协议被接收;在移动计算设备处运行应用;和/或利用应用通信协议从应用与附件设备通信。在一些实施例中,该方法还可以包括判断该应用协议是否被列出在所述移动计算设备处的协议表中,其中所述协议表可以包括所述移动计算设备处的应用所支持的协议。
在一些实施例中,该方法还可以包括:在所述协议表不包括该应用协议的情况中,下载支持该应用协议的应用。在一些实施例中,来自所述附件设备的指定了应用通信协议的信息利用反向域名协定来指定一个应用通信协议。在一些实施例中,来自所述附件设备的指定了应用通信协议的信息还可以包括与该应用通信协议相关联的标识符。在一些实施例中,利用应用通信协议与附件设备通信还可以包括将应用通信协议分组封装在附件通信协议分组内。在一些实施例中,应用通信协议可以包括被包括在附件通信协议内的命令。
还公开了一种移动计算设备,该移动计算设备可以包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内并且/或者被配置为与附件交换命令和数据,该通信接口具有至少一个端口;存储器,该存储器被设置在所述壳体内;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且/或者可通信地与所述存储器和所述通信接口相耦合。该控制逻辑可被配置为:利用附件通信协议通过通信接口接收来自附件的指定应用通信协议的指示。该控制逻辑还可被配置为运行存储在存储器中的应用。该控制逻辑还可被配置为利用应用通信协议建立附件与应用之间的通信。在一些实施例中,该至少一个端口可以为有线端口或无线端口。在一些实施例中,控制逻辑还可被配置为判断由应用指定的应用通信协议是否可与存储在存储器中的应用通信协议相关联。在一些实施例中,控制逻辑还可被配置为利用附件通信协议将应用通信协议数据隧道传输给附件。在一些实施例中,控制逻辑还可被配置为将应用通信协议分组与附件通信协议分组封装在一起并且将附件通信协议分组提供给端口。
公开了另一种移动计算设备,该移动计算设备可以包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内,并且/或者被配置为与附件交换命令和数据;存储器,该存储器被设置在所述壳体内;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且/或者可通信地与所述存储器和所述通信接口相耦合。所述控制逻辑可被配置为:通过该通信接口从附件设备接收应用通信协议信息,其中该应用通信协议信息可以包括附件所支持的应用通信协议的标识,和/或其中该应用通信协议信息可利用附件通信协议从该附件被接收。该控制逻辑可被配置为通过将应用通信协议分组封装在附件通信协议分组内来创建经封装分组。该控制逻辑可被配置为通经由该通信接口将经封装分组发送给附件。在一些实施例中,该通信接口可以是无线通信接口。在一些实施例中,移动计算设备可以包括存储在存储器中的协议表,其中该协议表可以包括安装在移动计算设备上的应用所支持的应用协议的列表。
公开了一种可包含程序指令的计算机可读介质,当程序指令被移动计算设备的处理器运行时使得该处理器执行方法。该方法可以包括:利用附件通信协议从附件设备接收应用通信协议信息,利用应用通信协议从附件接收数据,和/或操纵从附件接收的数据。在一些实施例中,该方法还可以包括在移动计算设备的显示装置上显示被操纵数据的至少一部分。在一些实施例中,该方法还可以包括通过利用应用通信协议向附件发送命令来控制附件的功能。
另一种方法被提供用于在附件设备与安装在移动设备上的应用之间建立通信会话。该方法可以在移动设备上操纵并且可以包括:将所支持应用协议的列表与所收集应用协议的列表相比较;当在所支持应用协议列表中的应用协议与所收集应用协议列表中的应用协议之间找到匹配时,将指定了匹配应用协议的信息传输给附件;和/或当未在所支持应用协议列表中的应用协议与所收集应用协议列表中的应用协议之间找到匹配时,将移动设备的用户引导至应用商店,在该应用商店中,与所收集应用协议列表内的至少一个应用协议相关联的应用可用于被下载。在一些实施例中,所支持应用协议的列表可以包括由应用支持的一个或多个通信协议,并且/或者所收集应用协议的列表可以包括从与移动计算设备相耦合的一个或多个附件接收的一个或多个通信协议。在一些实施例中,当在所支持应用协议列表中的应用协议与所收集应用协议列表中的应用协议之间找到匹配时,请求与附件的通信会话。在一些实施例中,在通信时,指定了匹配应用协议的信息可以包括会话标识符。在一些实施例中,当在所支持应用协议列表中的应用协议与所收集应用协议列表中的应用协议之间找到匹配时,利用该匹配应用协议来与附件通信。在一些实施例中,应用商店可以是基于因特网的应用商店。
提供了一种包含程序指令的计算机可读介质,当程序指令被移动计算设备的处理器运行时,使得该处理器执行方法。该方法可以包括:判断所支持协议列表中的所支持应用协议标识符是否与所收集协议列表中的应用协议标识符相匹配;并且/或者响应于在所支持应用协议与所收集应用协议列表中的应用协议之间找到匹配,执行子方法。该子方法包括:在移动计算设备和与该移动计算设备相耦合的附件之间发起通信会话;向附件传输指定了所支持应用协议的信息;并且/或者利用所支持应用协议从移动计算设备与附件通信。在一些实施例中,所收集协议列表可以包括表示与附件兼容的应用协议的一个或多个通信协议标识符,和/或所支持协议列表可以包括表示与安装在移动计算设备处的应用兼容的应用协议的一个或多个通信协议标识符。在一些实施例中,所支持应用协议可以不同于附件通信协议。在一些实施例中,程序指令还可以使处理器响应于未在所支持应用协议与所收集应用协议列表中的应用协议之间找到匹配而下载支持与所收集协议列表中的应用协议相匹配的协议的应用。
提供了一种在移动计算设备处操作的另一方法,该方法可以包括:从附件设备接收应用协议标识符,其中所接收的应用协议标识符可以包括反向域名格式的数据串并且可与应用通信协议相关联;并且/或者判断所接收的应用协议标识符是否与存储在所述移动计算设备处的存储器中的协议表内所列出的应用协议标识符相匹配,此后,利用所述应用通信协议与所述附件通信。在一些实施例中,所述协议表可以包括与可在所述移动计算设备处运行的应用相关联的一个或多个应用协议标识符。在一些实施例中,该方法还可以包括:当所接收的应用协议标识符与所述协议表中的应用协议标识符相匹配时,运行与所述协议表中的应用协议标识符相关联的应用。在一些实施例中,该方法还可以包括利用与所接收的应用协议标识符相匹配的关联应用协议标识符来下载应用。
还公开了一种移动计算设备,该移动计算设备包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内,并且/或者被配置为与附件交换命令和数据;存储器,该存储器被设置在所述壳体内,所述存储器维护所支持应用协议列表;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且/或者可通信地与所述存储器和所述通信接口相耦合。在一些实施例中,该控制逻辑被配置为:通过通信接口从附件接收标识出了所述附件所支持的应用通信协议的信息。在一些实施例中,该控制逻辑可被配置为判断该附件支持的应用通信协议是否与在所支持应用协议列表中标识出的协议相对应,其中所支持应用协议列表可以包括安装在移动计算设备上的应用所支持的一个或多个协议。在一些实施例中,控制逻辑可被配置为当判定附件支持的应用协议与在所支持应用协议列表中标识出的协议之间相对应时,利用移动计算设备协议向附件传输指定了匹配应用协议的信息。在一些实施例中,控制逻辑可被配置为利用该匹配应用协议与附件通信。
还提供了另一方法,该方法可以包括:利用移动计算设备协议从附件接收应用协议信息,其中该应用协议信息标识出与附件兼容的至少一个应用协议。该方法还可以包括:判断该应用协议是否与在所支持协议列表中列出的协议相匹配,其中所支持协议列表可以包括至少由安装在移动设备上的应用支持的一个或多个通信协议,和/或其中在所支持协议列表中列出的每个协议可以与应用相关联。并且当一应用协议与所支持协议列表中的协议相匹配时,该方法还可以包括运行与所支持列表中的匹配协议相关联的应用。在一些实施例中,当没有应用协议与所支持协议列表中的协议相匹配时,从因特网下载与所支持协议列表中的协议相关联的应用。
提供了另一种方法,该方法可以包括:在移动计算设备处从附件接收信息,其中该信息可以包括应用协议的标识;将该应用协议与存储在移动计算设备的存储器中的所支持协议表中列出的协议相比较,其中所支持协议表可以包括与应用相关联的至少一个应用协议;并且/或者当该应用协议与所支持协议表中列出的协议匹配时,在移动计算设备处运行与该应用协议相关联的应用。在一些实施例中,该信息可以包括支持该应用协议的优选应用的标识,并且/或者当该应用协议不与所支持协议表中列出的协议相匹配时,下载该优选应用。在一些实施例中,标识应用协议的信息里有反向域名格式来标识该应用协议。在一些实施例中,该方法还可以包括里有应用协议与附件通信。在一些实施例中,标识应用协议的信息可以根据移动计算设备协议被格式化。
提供了一种移动计算设备,该移动计算设备包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内,并且/或者被配置为与附件交换命令和数据;存储器,该存储器被设置在所述壳体内,所述存储器包括列出了与应用兼容的协议的所支持应用协议列表,其中所支持应用协议包括安装在所述移动计算设备上的应用所支持的应用协议;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且/或者可通信地与所述存储器和所述通信接口相耦合。该控制逻辑被配置为:从附件接收标识出了所述附件所支持的应用协议的消息;判断该应用协议是否与存储在所支持应用协议列表内的所支持应用协议相匹配;并且/或者当发现相匹配时,运行与匹配该应用协议的所支持附件相关联的应用。在一些实施例中,从附件接收的消息可以标识出能够从其找到支持该应用协议的应用的基于因特网的地址。在一些实施例中,该方法还可以包括从所述基于因特网的地址下载所述应用。在一些实施例中,该方法还可以包括将该应用安装在所述移动计算设备中并且运行该应用。
公开了一种移动通信设备,该设备包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内,并且/或者被配置为与附件交换命令和数据,该通信接口具有第一通信端口和第二通信端口;存储器,该存储器被设置在所述壳体内;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且可通信地与所述存储器和所述通信接口相耦合。该控制逻辑可被配置为:利用第一应用通信协议通过所述第一通信端口与第一附件通信;以及/或者利用第二应用通信协议通过所述第二通信端口与第二附件通信。在一些实施例中,所述第一通信端口或所述第二通信端口中的至少一者可以包括无线通信端口。在一些实施例中,所述第一应用通信协议和所述第二应用通信协议可以不同。在一些实施例中,所述控制逻辑还可被配置为利用附件通信协议通过所述第一通信端口与所述第一附件通信并且通过所述第二附件通信端口与所述第二附件通信。在一些实施例中,所述控制逻辑还可被配置为通过所述第一端口建立用于与所述第一附件通信的第一通信会话。在一些实施例中,所述控制逻辑还可被配置为通过所述第一端口建立用于与所述第二附件通信的第二通信会话。在一些实施例中,所述通信接口可以包括第三通信端口,并且所述控制逻辑还可被配置为利用第三应用通信协议通过所述第三通信端口与第三附件通信。
一种包含程序指令的计算机可读介质,所述程序指令在被移动计算设备的处理器运行时使得所述处理器执行方法。该方法包括:请求用于与第一附件通信的第一通信会话;接收所述第一通信会话的会话标识符;利用第一应用协议通过所述第一通信会话与所述第一附件通信;请求用于与第二附件通信的第二通信会话;接收所述第二通信会话的会话标识符;以及/或者利用第二应用协议通过所述第二通信会话与所述第二附件通信。在一些实施例中,所述第一应用协议和所述第二应用协议不同。在一些实施例中,所述第一应用协议和所述第二应用协议相同。在一些实施例中,所述程序指令还使得所述处理器判断所述第一附件或所述第二附件是否与所述移动计算设备可通信地相耦合。
一种移动通信设备包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内,并且/或者被配置为与第一附件和第二附件交换命令和数据,该通信接口具有第一通信端口和第二通信端口;存储器,该存储器被设置在所述壳体内;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且/或者可通信地与所述存储器和所述通信接口相耦合。该控制逻辑被配置为:在第一通信端口与由该控制逻辑运行的第一应用之间建立第一通信会话;利用第一应用协议通过第一通信会话与第一附件通信;在第二通信端口与由控制逻辑运行的第二应用之间建立第二通信会话;以及/或者利用第二应用协议通过第二通信会话与第二附件通信。在一些实施例中,控制逻辑还可被配置为利用附件通信协议为第一应用通信协议消息提供隧道。在一些实施例中,附件通信协议可以不同于第一应用通信协议。在一些实施例中,控制逻辑还可被配置为利用附件通信协议为第二应用通信协议消息提供隧道。在一些实施例中,附件通信协议可以不同于第二应用通信协议。
提供了在移动计算设备处运行的另一方法。该方法可以包括:接收附件可以在通信端口处与移动计算设备可通信地相耦合的指示;判断附件支持利用附件协议和应用协议两者与移动计算设备的通信;通过通信端口在附件与在移动计算设备处运行的应用之间建立通信会话;和/或利用该通信会话从应用向附件发送消息,其中消息是应用协议消息。在一些实施例中,附件协议和应用协议不同。在一些实施例中,该方法可以包括从附件接收对附件支持该应用协议的指示。在一些实施例中,该方法还可以包括将应用协议消息封装在附件协议消息内。
提供了一种用于在移动计算设备上运行的应用与附件之间建立通信会话的方法。该方法可在移动计算设备处运行并且可以包括:从应用接收对与附件有关的信息的请求;向应用提供附件信息,其中附件信息可以包括可与附件兼容的至少一个应用通信协议的标识符;接收对在所述附件与所述应用之间利用所述应用通信协议进行通信的通信会话的请求;从所述应用接收消息,其中该消息可根据所述应用通信协议被格式化;将该消息与附件通信协议包装材料包装在一起;和/或将所述消息传输给所述附件,其中所述消息可根据与所述应用通信协议不同的附件通信协议被传输。在一些实施例中,所述附件通信协议包装材料可包括隧道传输命令。在一些实施例中,至少一个应用通信协议的标识符可以包括以反向域名格式提供的标识符。在一些实施例中,该方法还可以包括:从所述附件接收消息,其中该消息可根据附件通信协议被格式化;从所述消息剥除所述附件通信协议包装材料;以及/或者将所述消息发送给所述应用,其中该消息可根据所述应用通信协议被传输。在一些实施例中,该方法还可以包括:监视通信接口处的附件连接;和/或当附件与所述通信接口可通信地相耦合时,接收包括附件能力的能力消息,其中所述消息包括与所述附件兼容的至少一个应用通信协议的标识符。再一些实施例中,所述能力消息可根据所述附件通信协议被格式化。
一种移动计算设备可包括:壳体;通信接口,该通信接口至少部分地被设置在所述壳体内,并且/或者被配置为利用附件通信协议与附件交换命令和数据;存储器,该存储器被设置在所述壳体内;和/或控制逻辑,该控制逻辑被设置在所述壳体内并且/或者可通信地与所述存储器和所述通信接口相耦合,所述控制逻辑被配置为运行应用以及作为后台处理的附件管理器。作为附件管理器运行的所述控制逻辑被配置为:监视所述通信接口处的与所述通信接口相耦合的附件;当附件与通信接口相耦合时,利用所述附件通信协议从所述附件接收包括兼容应用协议的附件能力信息;从所述附件接收与附件通信协议包装材料包装在一起的按应用通信协议格式化的消息;从所述消息剥除所述附件通信协议包装材料;以及/或者将消息传输给所述应用。在一些实施例中,所述附件能力是利用所述附件通信协议接收的。在一些实施例中,作为附件管理器运行的所述控制逻辑还可被配置为建立输入数据流以使得能从该输入数据流读取数据。在一些实施例中,作为附件管理器运行的所述控制逻辑利用所述输入数据流将从所述附件接收的消息传输给所述应用。在一些实施例中,作为附件管理器运行的所述控制逻辑还可被配置为:从所述应用接收按应用通信协议格式化的消息;将所述附件通信协议消息与附件通信协议包装材料包装在一起;以及/或者将所述消息传输给所述附件。在一些实施例中,作为附件管理器运行的所述控制逻辑还可被配置为建立输出数据流以使得数据能由应用写入所述输出数据流并发送给所述附件。在一些实施例中,作为附件管理器运行的所述控制逻辑将从所述输出数据流接收的消息传输给所述附件。
提供了另一方法。该方法可以包括:在移动计算设备的附件接口出监视对附件已与附件接口可通信地相耦合的指示;当附件可与附件接口可通信地相耦合时,从附件接收能力信息,其中该能力信息可以利用附件通信协议来接收,和/或能力信息可以包括指示与附件兼容的一个或多个应用通信协议的信息;为在移动计算设备处运行的应用建立输入数据流,其中从附件接收的被包装在附件通信协议包装材料中的应用消息可以从附件通信协议包装材料被剥离并且利用输入数据流被写入应用;并且/或者为应用建立输出数据流,其中从应用写入输出数据流的应用消息可被包装在附件通信协议包装材料中并且通过附件接口被发送给附件。在一些实施例中,附件接口可以包括无线通信接口。在一些实施例中,指示一个或多个应用通信协议的信息可以利用反向域名格式来提供。
还提供了一种在移动计算设备上运行的方法。该方法可以包括:从在移动计算设备上运行的应用接收对利用应用协议在移动计算设备与外部附件之间进行通信会话的请求;判断该应用协议是否可被附件支持;当该应用协议可由附件支持时,向应用提供输入流和输出流以用于利用该应用协议与附件通信;通过输出流从应用接收消息,其中该消息可以根据该应用协议被格式化;将该消息包装在附件协议消息内;并且/或者将该消息发送给附件。
在一些实施例中,该判断还包括:在查找表中查找该应用协议。在一些实施例中,该方法可以包括:从附件接收消息,其中该消息可以是被包装在附件协议消息内的应用协议消息;从应用协议消息解除附件协议包装材料;并且/或者将应用协议消息写入应用的输入流。
提供了在移动计算设备上运行的另一方法。该方法包括:在第一应用与第一附件之间举行第一通信会话,其中该通信会话利用第一通信协议在第一应用与第一附件之间提供通信;从第一应用接收第一消息;将包装在附件协议包装材料内的第一消息发送给附件;在第二应用与第一附件之间举行第二通信会话,其中该通信会话利用第二通信协议在第一应用与第一附件之间提供通信,其中该第一和第二应用协议不同;并且/或者从第二应用接收第二消息并且将包装在附件协议包装材料内的第二消息发送给附件。
提供了一种包含程序指令的计算机可读介质,当程序指令由移动计算设备的处理器运行时使得处理器执行方法。该方法可以包括:从附件管理器请求附件信息,其中该附件管理器可以是在移动计算设备处运行的后台处理并且在运行在移动计算设备中的应用和与移动计算设备可通信地相耦合的附件之间提供通信连接;当附件与所述移动计算设备可通信地相耦合时,从所述附件管理器接收附件标识符以及指定了与所述附件兼容的至少一个应用通信协议的一个或多个协议标识符;判断所述应用与所述至少一个应用协议是否可兼容;当所述应用可兼容时,举行会话以利用所述应用通信协议通过所述附件管理器来与所述附件通信;以及/或者利用所述附件通信协议与所述附件通信。在一些实施例中,协议标识符可利用反向域名协定被格式化。在一些实施例中,与所述附件的通信可包括:从所述附件管理器接收输出流;以及/或者根据所述应用通信协议向输入流写入数据。在一些实施例中,与所述附件的通信可包括:从所述附件管理器接收输入流;以及/或者从所述输入流接收根据所述应用通信协议被格式化的数据。
一种应用利用应用管理器与附件建立通信的方法。该方法可以包括:从所述应用管理器接收指定了与所述附件兼容的应用协议的指示;从所述应用管理器接收输入流和输出流以用于利用所述应用协议与所述附件通信;以及/或者此后,将用于所述附件的应用协议消息写入所述输出流。在一些实施例中,该方法还可以包括:向所述应用管理器发送应用协议信息,其中所述应用协议信息可以包括对所述应用所支持的应用协议的指示。在一些实施例中,与所述附件兼容的应用协议可以是由所述应用发送的所述应用协议信息所指示的应用协议。在一些实施例中,应用协议信息所指示的应用协议指示使用反向域名协定的应用协议。
公开了一种由在移动计算设备上运行的应用执行的方法。该方法包括:从应用管理器请求附件信息,其中附件信息可以包括指示与移动计算设备可通信地相耦合的附件所支持的一个或多个应用协议的信息;判断附件支持的应用协议是否与应用支持的应用协议相匹配;当应用协议相匹配时,请求用于利用该应用协议与附件通信的输入流和输出流;接收输入流和输出流;并且/或者此后,将用于附件的应用协议消息写入输出流。在一些实施例中,该方法可以包括利用输入流读取来自附件的应用协议消息。在一些实施例中,附件信息指示使用反向域名协定的应用协议。在一些实施例中,附件信息可被存储在表中并且附件信息可以是去往与附件信息相关联的元数据的存储位置的指示符。
提供了一种由运行在移动计算设备上的应用执行的方法。该方法包括:访问表,该表包含指示与移动计算设备相耦合的附件所支持的应用协议;判断应用所支持的应用协议是否与该表中的应用协议相匹配;当应用协议相匹配时,举行通信会话以利用该匹配应用与附件通信;接收输入流和输出流;并且/或者此后,将用于附件的应用协议消息写入该输出流。在一些实施例中,该表可以包括与附件相关联的多个应用协议,并且/或者该应用判断该应用支持的应用协议是否与该表中的任一应用协议相匹配。在一些实施例中,该方法还可以包括利用输入流来读取来自附件的应用协议消息。在一些实施例中,附件信息指示利用反向域名协定被格式化的应用协议。
电路、逻辑模块、处理器和/或其它组件在这里可被描述为“被配置”为执行各种操作。本领域技术人员将认识到,取决于实现方式,这样的配置可通过对特定组件的设计、设置、互连和/或编程来实现,并且再次地取决于实现方式,被配置组件可以或不可以被重新配置用于不同操作。例如,可编程处理器可以通过提供合适的可执行代码而被配置;专用逻辑电路可以通过合适地连接逻辑门和其它电路元件而被配置;等等。
虽然上述实施例可涉及到具体硬件和软件组件,然而本领域技术人员将理解,还可以使用硬件和/或软件组件的不同组合并且被描述为用硬件实现的特定操作也可以用软件来实现,或者反之,被描述为用软件实现的特定操作也可以用硬件来实现。
包含有本发明的各个特征的计算机程序可被编码在各种计算机可读存储介质上;合适的介质包括磁盘或磁带、光存储介质(例如致密盘(CD)或DVD(数字通用盘))、闪存等。编码有程序代码的计算机可读存储介质可以与兼容设备封装在一起或者与其它设备分开地被提供。另外,程序代码可以被编码并且经由遵循多种协议的有线、光学和/或无线网络(包括因特网)被发送,从而允许例如经由因特网下载而被分发。
虽然在本公开中关于单个实施例描述了示例和/或细节,然而这些示例或细节可结合这里描述的任何实施例被使用。
因此,虽然相对于具体实施例描述了本发明,然而将理解,本发明意图涵盖落在所附权利要求范围内的所有修改和等同物。

Claims (19)

1.一种用于在附件设备和在移动计算设备上执行的应用之间通信的方法,该方法包括:
由附件设备利用附件通信协议来与在移动计算设备上运行的操作系统通信,其中,附件通信协议指定使能任意附件设备与移动计算设备之间的通信的一组通用命令;
由附件设备向在移动计算设备上执行的操作系统传输所述移动计算设备的所述操作系统可使用的用来标识所述附件设备所支持的应用通信协议的信息,该信息利用附件通信协议来传输,其中所述应用通信协议与所述附件通信协议不同并且特定于移动计算设备上的特定应用;以及
由所述附件设备利用所述应用通信协议与在所述移动计算设备上运行的所述特定应用进行通信,
其中,利用所述应用通信协议与在所述移动计算设备上运行的所述特定应用进行通信包括:
生成遵循所述应用通信协议的消息;
将所述消息包装到附件通信协议包装材料中;以及
将已包装的消息传输到所述移动计算设备,其中,已包装的消
息根据所述附件通信协议被传输。
2.根据权利要求1所述的方法,其中,所述移动计算设备可使用的用来标识所述应用通信协议的信息包括指定所述应用通信协议的信息。
3.根据权利要求2所述的方法,其中,指定所述应用通信协议的信息按反向域名协定来提供。
4.根据权利要求1所述的方法,其中,所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括标识所述附件设备的信息。
5.根据权利要求1所述的方法,其中,与所述操作系统通信包括向所述移动计算设备的一端口发送遵循所述附件通信协议的第一消息;以及
与所述应用通信包括向所述移动计算设备的所述端口发送遵循所述附件通信协议的第二消息,第二消息包含遵循所述应用通信协议的消息。
6.根据权利要求1所述的方法,还包括:
从在所述移动计算设备上运行的应用接收遵循所述应用通信协议的命令;以及
响应于接收到该命令而改变所述附件设备的状态。
7.一种附件设备,包括:
壳体;
通信接口,该通信接口至少部分地被设置在所述壳体内,并且被配置为与移动计算设备交换命令和数据,所述通信接口具有至少一个端口;以及
控制逻辑,该控制逻辑被配置为:
利用附件通信协议来与在移动计算设备上运行的操作系统通信,其中,附件通信协议指定使能任意附件设备与移动计算设备之间的通信的一组通用命令,
向在移动计算设备上执行的操作系统传输所述移动计算设备的所述操作系统可使用的用来标识所述附件设备所支持的应用通信协议的信息,该信息是利用附件通信协议来传输的,其中所述应用通信协议与所述附件通信协议不同并且特定于移动计算设备上的特定应用;以及
利用所述应用通信协议与运行在所述移动计算设备上的应用进行通信,
其中,利用所述应用通信协议与运行在所述移动计算设备上的应用进行通信包括:
生成遵循所述应用通信协议的消息;
将所述消息包装到附件通信协议包装材料中;以及
将已包装的消息传输到所述移动计算设备,其中,已包装的消息根据所述附件通信协议被传输。
8.根据权利要求7所述的附件设备,其中,所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括指定所述应用通信协议的信息。
9.根据权利要求7所述的附件设备,其中,所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括标识所述附件设备的信息。
10.根据权利要求9所述的附件设备,其中,标识所述附件设备的信息包括所述附件设备的制造商以及所述附件设备的型号。
11.一种用于在附件设备和在移动计算设备上执行的应用之间通信的方法,该方法包括:
由在移动计算设备上运行的操作系统利用附件通信协议来与附件设备通信,其中,附件通信协议指定使能任意附件设备与移动计算设备之间的通信的一组通用命令;
由在移动计算设备上执行的操作系统从附件设备接收所述移动计算设备的所述操作系统可使用的用来标识所述附件设备所支持的应用通信协议的信息,该信息利用附件通信协议被接收,其中所述应用通信协议与所述附件通信协议不同并且特定于移动计算设备上的特定应用;
由所述移动计算设备启动支持所述应用通信协议的所述特定应用;以及
由所述移动计算设备利用所述应用通信协议来使能在所述移动计算使设备上运行的所述应用与所述附件设备之间的通信,
其中,由所述移动计算设备利用所述应用通信协议来使能在所述移动计算使设备上运行的所述应用与所述附件设备之间的通信包括:
由所述应用生成遵循所述应用通信协议的消息;
由所述操作系统将所述消息包装到附件通信协议包装材料中;以及
由所述操作系统将已包装的消息传输到所述附件设备,其中,已包装的消息根据所述附件通信协议被传输。
12.根据权利要求11所述的方法,其中,所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括指定所述应用通信协议的信息。
13.根据权利要求11所述的方法,其中,所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括标识所述附件设备的信息。
14.根据权利要求11所述的方法,还包括:
判断所述应用通信协议是否被包括在所述移动计算设备上所存储的协议表中,所述协议表标识驻留在所述移动计算设备上的应用所支持的应用通信协议;以及
如果所述应用通信协议被包括在所述协议表中,则:
确定与所述协议表中的该应用通信协议相关联的应用;以及
运行所确定的应用。
15.根据权利要求14所述的方法,其中,所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括基于因特网的地址,在所述基于因特网的地址处能找到支持该应用通信协议的一个或多个应用。
16.根据权利要求15所述的方法,还包括如果该应用通信协议未被包括在所述协议表中,则:
从所述基于因特网的地址向所述移动计算设备下载所述一个或多个应用;以及
将所述协议表更新为包括该应用通信协议。
17.一种移动计算设备,包括:
壳体;
通信接口,该通信接口至少部分地被设置在所述壳体内,并被配置为使用附件通信协议与附件设备交换命令和数据;
存储器,该存储器被设置在所述壳体内;以及
处理器,该处理器被设置在所述壳体内并与所述存储器和所述通信接口可通信地耦接,所述处理器被配置为:
运行操作系统;
由操作系统使用附件通信协议来与附件设备通信,其中,附件通信协议指定使能任意附件设备与移动计算设备之间的通信的一组通用命令;
由操作系统从附件设备接收所述移动计算设备的所述操作系统可使用的用来标识所述附件设备所支持的应用通信协议的信息,该信息利用附件通信协议被接收,其中所述应用通信协议与所述附件通信协议不同并且特定于移动计算设备上的特定应用;
启动支持所述应用通信协议的所述特定应用;以及
利用所述应用通信协议来使能在所述移动计算设备上运行的所述应用与所述附件设备之间的通信,
其中,利用所述应用通信协议来使能在所述移动计算设备上运行的所述应用与所述附件设备之间的通信包括:
由所述应用生成遵循所述应用通信协议的消息;
由所述操作系统将所述消息包装到附件通信协议包装材料中;以及
由所述操作系统将已包装的消息传输到所述附件设备,其中,已包装的消息根据所述附件通信协议被传输。
18.根据权利要求17所述的移动计算设备,其中,
所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括指定所述应用通信协议的信息。
19.根据权利要求17所述的移动计算设备,其中,所述移动计算设备的所述操作系统可使用的用来标识所述应用通信协议的信息包括标识所述附件设备的信息。
CN201080021428.4A 2009-03-16 2010-03-11 使用应用通信协议的附件和移动计算设备通信 Active CN102428665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510462782.5A CN105162955B (zh) 2009-03-16 2010-03-11 使用应用通信协议的附件和移动计算设备通信

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US16060109P 2009-03-16 2009-03-16
US16064409P 2009-03-16 2009-03-16
US61/160,601 2009-03-16
US61/160,644 2009-03-16
US12/720,375 2010-03-09
US12/720,446 2010-03-09
US12/720,400 US8639733B2 (en) 2009-03-16 2010-03-09 Automatic identification of compatible applications and accessories
US12/720,375 US9069908B2 (en) 2009-03-16 2010-03-09 Accessory and mobile computing device communication using an application communication protocol
US12/720,446 US8402145B2 (en) 2009-03-16 2010-03-09 Application communication with external accessories
US12/720,400 2010-03-09
US12/720,489 US8341318B2 (en) 2009-03-16 2010-03-09 Techniques for facilitating communication between an accessory and a mobile computing device using application specific protocols
US12/720,349 2010-03-09
US12/720,349 US8700789B2 (en) 2009-03-16 2010-03-09 Accessory and mobile computing device communication using an application communication protocol
US12/720,423 2010-03-09
US12/720,423 US8554924B2 (en) 2009-03-16 2010-03-09 Connection to multiple accessories with multiple accessory-specific protocols
US12/720,489 2010-03-09
PCT/US2010/027058 WO2010107660A1 (en) 2009-03-16 2010-03-11 Accessory and mobile computing device communication using an application communication protocol

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510462782.5A Division CN105162955B (zh) 2009-03-16 2010-03-11 使用应用通信协议的附件和移动计算设备通信

Publications (2)

Publication Number Publication Date
CN102428665A CN102428665A (zh) 2012-04-25
CN102428665B true CN102428665B (zh) 2015-06-17

Family

ID=42153714

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201080021428.4A Active CN102428665B (zh) 2009-03-16 2010-03-11 使用应用通信协议的附件和移动计算设备通信
CN201510462782.5A Active CN105162955B (zh) 2009-03-16 2010-03-11 使用应用通信协议的附件和移动计算设备通信

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201510462782.5A Active CN105162955B (zh) 2009-03-16 2010-03-11 使用应用通信协议的附件和移动计算设备通信

Country Status (12)

Country Link
US (10) US8639733B2 (zh)
EP (4) EP2230605B1 (zh)
JP (2) JP4842383B2 (zh)
KR (1) KR101346541B1 (zh)
CN (2) CN102428665B (zh)
AU (1) AU2010226111B2 (zh)
BR (1) BRPI1009309B1 (zh)
DE (1) DE112010001170B4 (zh)
GB (1) GB2481349B (zh)
HK (1) HK1164584A1 (zh)
MX (1) MX2011009737A (zh)
WO (1) WO2010107660A1 (zh)

Families Citing this family (245)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3882797A1 (en) 2007-09-24 2021-09-22 Apple Inc. Embedded authentication systems in an electronic device
US8600120B2 (en) 2008-01-03 2013-12-03 Apple Inc. Personal computing device control using face detection and recognition
US8630684B2 (en) * 2008-12-08 2014-01-14 Verizon Patent And Licensing Inc. Accessory devices for mobile phones
US8082312B2 (en) 2008-12-12 2011-12-20 Event Medical, Inc. System and method for communicating over a network with a medical device
US8639733B2 (en) 2009-03-16 2014-01-28 Apple Inc. Automatic identification of compatible applications and accessories
US20120081207A1 (en) * 2010-09-30 2012-04-05 Apple Inc. Application launching in conjunction with an accessory
US20110029864A1 (en) * 2009-07-30 2011-02-03 Aaron Michael Stewart Touch-Optimized Approach for Controlling Computer Function Using Touch Sensitive Tiles
US20110055380A1 (en) * 2009-09-03 2011-03-03 Yockey Robert F Network providing automatic connections between devices based on user task
US7865629B1 (en) * 2009-11-24 2011-01-04 Microsoft Corporation Configurable connector for system-level communication
US8364745B2 (en) 2009-11-24 2013-01-29 International Business Machines Corporation Service oriented architecture enterprise service bus with universal ports
US8719112B2 (en) * 2009-11-24 2014-05-06 Microsoft Corporation Invocation of accessory-specific user experience
US8171094B2 (en) 2010-01-19 2012-05-01 Event Medical, Inc. System and method for communicating over a network with a medical device
US8346310B2 (en) * 2010-02-05 2013-01-01 Ford Global Technologies, Llc Method and apparatus for communication between a vehicle based computing system and a remote application
US8433828B2 (en) 2010-02-26 2013-04-30 Apple Inc. Accessory protocol for touch screen device accessibility
US8886709B2 (en) * 2010-05-21 2014-11-11 Blackberry Limited System and method for efficient image and document upload
WO2011149857A1 (en) * 2010-05-24 2011-12-01 Abbott Diabetes Care Inc. Method and system for updating a medical device
US8347014B2 (en) * 2010-06-04 2013-01-01 Apple Inc. Class-based compatibility testing and notification
US9098548B1 (en) * 2010-06-14 2015-08-04 Open Invention Network, Llc Method and apparatus for accessing a data source from a client using a driver
US9022279B2 (en) * 2010-06-15 2015-05-05 Apple Inc. Method and system for locating an accessory and an application for use with a user device
ES2537403T3 (es) 2010-07-27 2015-06-08 Genomic Health, Inc. Método para usar la expresión génica para determinar el pronóstico de cáncer de próstata
US8648970B2 (en) * 2010-08-02 2014-02-11 Chip Goal Electronics Corporation, Roc Remote controllable video display system and controller and method therefor
US9363348B2 (en) * 2010-10-13 2016-06-07 Plantronics, Inc. Device and process for customizing a headset or other audio device
US8412235B1 (en) * 2010-11-08 2013-04-02 West Corporation Method and apparatus of requesting customized location information at a mobile station
US9344860B2 (en) 2010-11-12 2016-05-17 Maximilian Leroux Mobile device control with external device
US20120123222A1 (en) * 2010-11-15 2012-05-17 Pensiero Medical Electronics Corp. Biomedical devcie capable of using an earphone and microphone plug to transmit data and method for transmitting data
EP2641424B1 (en) * 2010-11-16 2019-08-14 Google LLC Cooperative tablet computer and mobile communicator
US9141780B2 (en) * 2010-11-22 2015-09-22 Smsc Holdings S.A.R.L. Method and system for authenticating communication
FR2971657A1 (fr) * 2011-02-11 2012-08-17 Alcatel Lucent Determination d'objets reels actifs pour mise en œuvre d'une application logicielle
US20120254329A1 (en) * 2011-03-31 2012-10-04 Majeti Venkata C Selectable activation/deactivation of features of applications on end user communication devices
US8566842B2 (en) * 2011-04-01 2013-10-22 International Business Machines Corporation Identification of a protocol used in a message
US9692611B1 (en) * 2011-04-06 2017-06-27 Google Inc. Context-based sensor selection
FR2974260B1 (fr) * 2011-04-13 2013-09-06 Ingenico Sa Procede de multiplexage de message, dispositif et programme correspondant
US8819448B2 (en) * 2011-04-29 2014-08-26 Georgetown University Method and system for managing information on mobile devices
EP2710487A4 (en) 2011-05-09 2015-06-17 Google Inc GENERATING APPLICATION RECOMMENDATIONS BASED ON USER INSTALLED APPLICATIONS
CN103930871B (zh) 2011-05-09 2019-07-09 谷歌有限责任公司 基于安装历史给移动设备推荐应用
WO2012154843A1 (en) 2011-05-09 2012-11-15 Google Inc. Identifying applications of interest based on application market log data
EP2710466A1 (en) 2011-05-09 2014-03-26 Google, Inc. Identifying applications of interest based on application metadata
US9157953B2 (en) 2011-05-13 2015-10-13 Apple Inc. Test systems with cables that support multiple communications buses
US8806583B2 (en) * 2011-05-17 2014-08-12 GM Global Technology Operations LLC Remote video source authentication protocol
WO2012162687A1 (en) 2011-05-26 2012-11-29 Candi Controls, Inc. System
US20120307078A1 (en) * 2011-06-03 2012-12-06 Microsoft Corporation Automatic sharing and replacement of content based on network connectivity
US8838261B2 (en) * 2011-06-03 2014-09-16 Apple Inc. Audio configuration based on selectable audio modes
US20120309289A1 (en) * 2011-06-06 2012-12-06 Apple Inc. Techniques for facilitating interoperation between an accessory and multiple devices
KR101769798B1 (ko) * 2011-06-08 2017-08-21 삼성전자 주식회사 액세서리 특성 설정 방법 및 이를 지원하는 액세서리 운용 시스템
US9325378B2 (en) * 2011-06-14 2016-04-26 Broadcom Corporation Computing device multiple display topology detection over radio
US9529752B2 (en) 2011-07-25 2016-12-27 Ford Global Technologies, Llc Method and apparatus for communication between a vehicle based computing system and a remote application
WO2013025254A1 (en) * 2011-08-12 2013-02-21 Emmoco, Inc. Embedded device application development
US20130045677A1 (en) * 2011-08-17 2013-02-21 Ho-Sung Chien Telematics System and Related Mobile Device and Method
US20130052946A1 (en) * 2011-08-23 2013-02-28 Manjirnath Chatterjee Home automation using a mobile device
US8909149B2 (en) * 2011-08-26 2014-12-09 Hewlett-Packard Development Company, L.P. Media module of a device
US20130066650A1 (en) * 2011-09-07 2013-03-14 Happtique, Inc. Provision of a Mobile Health Product
US20130060574A1 (en) * 2011-09-07 2013-03-07 Lee H. Perlman Provision of a mobile health product
TW201312340A (zh) * 2011-09-09 2013-03-16 Askey Technology Jiangsu Ltd 手持式電子裝置的測試系統及方法
EP2745493A4 (en) * 2011-09-12 2015-02-25 Nokia Corp METHOD AND DEVICE FOR STARTING AN APPLICATION IDENTIFIED BY A SENSOR
US8838845B2 (en) * 2011-09-23 2014-09-16 Qualcomm Incorporated Multimedia interface with content protection in a wireless communication device
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
US8494585B2 (en) * 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
US8930492B2 (en) 2011-10-17 2015-01-06 Blackberry Limited Method and electronic device for content sharing
US9071740B1 (en) 2011-10-28 2015-06-30 Google Inc. Modular camera system
US9182965B2 (en) * 2011-10-31 2015-11-10 Nokia Technologies Oy Method and apparatus for developing socially suitable applications and devices
US8989094B2 (en) * 2011-11-22 2015-03-24 Wifiname, Inc. Systems and methods for generating and displaying application information on a wireless station
KR101908947B1 (ko) * 2011-11-23 2018-10-17 삼성전자주식회사 외장 기기 연결을 위한 방법 및 장치
US9134969B2 (en) 2011-12-13 2015-09-15 Ipar, Llc Computer-implemented systems and methods for providing consistent application generation
US20130191575A1 (en) * 2011-12-21 2013-07-25 Hendricks Investment Holdings, Llc Methods and systems for providing alternative storage resources
KR101978305B1 (ko) * 2011-12-30 2019-08-29 삼성전자주식회사 디스플레이장치, 업그레이드장치, 디스플레이 시스템 및 그 제어방법
US20130174042A1 (en) * 2011-12-30 2013-07-04 Samsung Electronics Co., Ltd. Display apparatus, upgrading apparatus, display system and control method thereof
US9197686B1 (en) 2012-01-06 2015-11-24 Google Inc. Backfill of video stream
US9537968B1 (en) * 2012-01-06 2017-01-03 Google Inc. Communication of socket protocol based data over a storage protocol based interface
US20140195582A1 (en) * 2013-01-10 2014-07-10 Packetvideo Corporation System and method for providing an inter-application communication framework
EP2615806B8 (en) 2012-01-16 2017-11-22 GN Audio A/S Call management through a hands free communication device
US20130198029A1 (en) * 2012-01-26 2013-08-01 Microsoft Corporation Application recommendation and substitution
US9083546B2 (en) * 2012-01-31 2015-07-14 Rajendra Padma Sadhu System and method for communicating health parameters of an occupant in an automobile and a dynamic operation of the automobile and home automation
US9026563B2 (en) 2012-02-02 2015-05-05 Salesforce.Com, Inc. Mechanism for facilitating dynamic social media-based management of assets in an on-demand services environment
US8996588B2 (en) * 2012-02-02 2015-03-31 Salesforce.Com, Inc. Mechanism for facilitating dynamic management of assets in an on-demand services environment
CN103246834B (zh) * 2012-02-07 2016-08-17 联想(北京)有限公司 控制方法和电子设备
CN103257780A (zh) * 2012-02-20 2013-08-21 联想(北京)有限公司 显示屏幕旋转方法和电子设备
US9207713B1 (en) * 2012-03-15 2015-12-08 Amazon Technologies, Inc. Location-based device docking
US8910147B2 (en) * 2012-04-17 2014-12-09 Asustek Computer Inc. Application installation method and mobile device
US8755404B2 (en) 2012-04-25 2014-06-17 Gainspan Corporation Facilitating communication between resource-constrained devices and wireless communication terminals
US11216854B2 (en) 2012-04-27 2022-01-04 Blackberry Limited Software distribution accounting
EP4224327A3 (en) 2012-05-02 2023-09-13 Invisio A/S Cable chip system
EP2864945A4 (en) * 2012-05-09 2016-04-20 Google Inc GENERATING APPLICATION RECOMMENDATIONS BASED ON USER REACTIONS
US8832750B2 (en) * 2012-05-10 2014-09-09 Time Warner Cable Enterprises Llc Media synchronization within home network using set-top box as gateway
CN104508590A (zh) * 2012-05-24 2015-04-08 波普斯莱特传媒公司 用于移动计算设备的动态可变的装饰性防护附件
US9014183B2 (en) * 2012-05-24 2015-04-21 Apple Inc. Buffer transfer service
US20130332632A1 (en) * 2012-06-08 2013-12-12 Apple Inc. Holistic identification of an electronic device
US9306879B2 (en) * 2012-06-08 2016-04-05 Apple Inc. Message-based identification of an electronic device
US20140006276A1 (en) * 2012-06-28 2014-01-02 Bank Of America Corporation Mobile wallet account number differentiation
GB2503707A (en) * 2012-07-05 2014-01-08 Martin Richard Lambert A smartphone based remote monitoring and control system including a microcontroller unit to which are coupled one or more sensors and/or actuators
CN102779540A (zh) * 2012-08-08 2012-11-14 深圳乐投卡尔科技有限公司 基于Android平台控制iPod播放的方法
US9591339B1 (en) 2012-11-27 2017-03-07 Apple Inc. Agnostic media delivery system
US9774917B1 (en) 2012-12-10 2017-09-26 Apple Inc. Channel bar user interface
US10200761B1 (en) 2012-12-13 2019-02-05 Apple Inc. TV side bar user interface
US9532111B1 (en) 2012-12-18 2016-12-27 Apple Inc. Devices and method for providing remote control hints on a display
KR101358352B1 (ko) 2012-12-26 2014-02-07 주식회사 옥타컴 Usb 인터페이스 장치 및 usb 데이터 송수신 방법
US10521188B1 (en) 2012-12-31 2019-12-31 Apple Inc. Multi-user TV user interface
US9477483B2 (en) * 2013-01-03 2016-10-25 Tapjoy, Inc. Tracking mobile app installations
CN105210145B (zh) * 2013-01-04 2018-12-11 伊奎蒂公司 交互式的可穿戴和便携式智能装置
US9954987B2 (en) 2013-02-06 2018-04-24 Analogix Semiconductor, Inc. Remote controller utilized with charging dock for controlling mobile device
US9887911B2 (en) * 2013-02-28 2018-02-06 Xaptum, Inc. Systems, methods, and devices for adaptive communication in a data communication network
KR101503770B1 (ko) * 2013-03-04 2015-03-18 주식회사 코런 개방형 스마트 앱세서리
US20140259028A1 (en) * 2013-03-05 2014-09-11 Google Inc. Mechanism for establishing temporary background communication between applications
CN103186319A (zh) * 2013-03-11 2013-07-03 北京小米科技有限责任公司 桌面的显示方法和装置
US10357606B2 (en) 2013-03-13 2019-07-23 Tandem Diabetes Care, Inc. System and method for integration of insulin pumps and continuous glucose monitoring
US20140280451A1 (en) * 2013-03-14 2014-09-18 Ford Global Technologies, Llc Method and Apparatus for Mobile Device Connectivity Compatibility Facilitation
US9242043B2 (en) 2013-03-15 2016-01-26 Tandem Diabetes Care, Inc. Field update of an ambulatory infusion pump system
US10204331B2 (en) 2013-03-15 2019-02-12 Worldpay, Llc Conducting a transaction at a mobile POS terminal using a defined structure
US20140351446A1 (en) * 2013-05-21 2014-11-27 Samsung Electronics Co., Ltd. Electronic device using logical channels for communication
KR102163357B1 (ko) 2013-05-21 2020-10-08 삼성전자주식회사 애플리케이션 관리 방법 및 장치
US9331894B2 (en) * 2013-05-31 2016-05-03 International Business Machines Corporation Information exchange in data center systems
US10205769B2 (en) * 2013-05-31 2019-02-12 Itron, Inc. Distributed applications across platforms
US9342288B2 (en) * 2013-05-31 2016-05-17 Itron, Inc. Surfacing cross platform applications
US11328344B2 (en) 2013-05-31 2022-05-10 Itron, Inc. Utility application delivery platform
MA20150009A1 (fr) * 2013-06-06 2015-01-30 Univ Internationale De Rabat Privee Uir Systeme de localisation du telephone portable en mode off
US9730268B2 (en) 2013-06-07 2017-08-08 Apple Inc. Communication between host and accessory devices using accessory protocols via wireless transport
US9720467B2 (en) * 2013-08-09 2017-08-01 Qualcomm Incorporated Thermal mitigation adaptation for a mobile electronic device
US9378723B2 (en) 2013-08-22 2016-06-28 Qualcomm Incorporated Apparatus and method for acquiring configuration data
US9584601B2 (en) * 2013-08-29 2017-02-28 Telenav, Inc. Communication system with transport link mechanism and method of operation thereof
KR102088018B1 (ko) * 2013-09-03 2020-05-27 삼성전자주식회사 전자 기기간 연동 방법 및 장치
US9898642B2 (en) 2013-09-09 2018-02-20 Apple Inc. Device, method, and graphical user interface for manipulating user interfaces based on fingerprint sensor inputs
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9497221B2 (en) 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US9819661B2 (en) 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US9588591B2 (en) 2013-10-10 2017-03-07 Google Technology Holdings, LLC Primary device that interfaces with a secondary device based on gesture commands
WO2015061471A1 (en) * 2013-10-22 2015-04-30 Kindara, Inc. Integrated wireless fertility tracking system
KR102405189B1 (ko) 2013-10-30 2022-06-07 애플 인크. 관련 사용자 인터페이스 객체를 표시
US10289219B2 (en) * 2013-10-31 2019-05-14 Hewlett-Packard Development Company, L.P. Communicating with an unsupported input device
US9251109B2 (en) 2013-12-20 2016-02-02 EXILANT Technologies Private Limited Communication with accessories
WO2015100340A1 (en) 2013-12-26 2015-07-02 Tandem Diabetes Care, Inc. Safety processor for wireless control of a drug delivery device
US10324987B2 (en) * 2013-12-31 2019-06-18 Samsung Electronics Co., Ltd. Application search using device capabilities
US9577902B2 (en) 2014-01-06 2017-02-21 Ford Global Technologies, Llc Method and apparatus for application launch and termination
CN103796080B (zh) * 2014-01-06 2018-08-31 联想(北京)有限公司 一种数据处理方法与电子设备
US10849502B2 (en) 2014-02-10 2020-12-01 Samsung Electronics Co., Ltd. System and method for providing health data of peripheral device
US20150271307A1 (en) 2014-03-21 2015-09-24 Motorola Mobility Llc Modular Device and Methods Therefor
KR102233378B1 (ko) 2014-04-07 2021-03-29 삼성전자주식회사 이동 단말과 연결된 착용형 기기의 동작 방법 및 그 착용형 기기
US20150293918A1 (en) * 2014-04-11 2015-10-15 Wesley W. Whitmyer, Jr. Web Searching Software Promoting Results Of Websites Formatted For Mobile Devices
EP3125509A4 (en) * 2014-04-15 2017-06-07 Huawei Technologies Co., Ltd. Application information sharing method and apparatus
EP3134817A4 (en) * 2014-04-24 2017-12-13 Hewlett-Packard Development Company, L.P. Mobile device support for sensors in peripherals
US10043185B2 (en) 2014-05-29 2018-08-07 Apple Inc. User interface for payments
EP3126953A1 (en) 2014-06-24 2017-02-08 Apple Inc. Column interface for navigating in a user interface
WO2016021743A1 (ko) * 2014-08-04 2016-02-11 에스피테크놀러지주식회사 공통 프로토콜을 이용하는 통신 단말기 및 그 제어방법
JP6035387B2 (ja) 2014-08-05 2016-11-30 三菱樹脂株式会社 積層多孔フィルム、非水電解液二次電池用セパレータ、非水電解液二次電池、スラリー、及び塗工液
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
US9769301B2 (en) * 2014-09-02 2017-09-19 Apple Inc. Accessory device application bundling
WO2016036552A1 (en) 2014-09-02 2016-03-10 Apple Inc. User interactions for a mapping application
US10602082B2 (en) 2014-09-17 2020-03-24 Fluke Corporation Triggered operation and/or recording of test and measurement or imaging tools
US9568368B2 (en) 2014-09-17 2017-02-14 Fluke Corporation Mobile device used with isolated test and measurement input block
WO2016065261A1 (en) 2014-10-24 2016-04-28 Fluke Corporation Imaging system employing fixed, modular mobile, and portable infrared cameras with ability to receive, communicate, and display data and images with proximity detection
US9572104B2 (en) * 2015-02-25 2017-02-14 Microsoft Technology Licensing, Llc Dynamic adjustment of user experience based on system capabilities
CN104778143B (zh) * 2015-03-20 2018-06-01 飞天诚信科技股份有限公司 主动与苹果设备连接并进行通信的方法和苹果设备附件
KR102335913B1 (ko) * 2015-04-02 2021-12-06 삼성전자주식회사 전자 장치의 보조 입력 장치 및 그의 기능 실행 방법
US10280386B2 (en) * 2015-04-03 2019-05-07 Ecolab Usa Inc. Enhanced peroxygen stability in multi-dispense TAED-containing peroxygen solid
US9763024B2 (en) * 2015-04-09 2017-09-12 Yahoo Holdings, Inc. Mobile ghosting
US10373190B2 (en) 2015-05-13 2019-08-06 Shelfbucks, Inc. System and methods for determining location of pop displays with wireless beacons through engagement with mobile devices
US9544485B2 (en) 2015-05-27 2017-01-10 Google Inc. Multi-mode LED illumination system
US9940637B2 (en) 2015-06-05 2018-04-10 Apple Inc. User interface for loyalty accounts and private label accounts
US20160358133A1 (en) 2015-06-05 2016-12-08 Apple Inc. User interface for loyalty accounts and private label accounts for a wearable device
US9489745B1 (en) 2015-06-12 2016-11-08 Google Inc. Using depth maps of a scene to identify movement of a video camera
US9626849B2 (en) 2015-06-12 2017-04-18 Google Inc. Using scene information from a security camera to reduce false security alerts
US9613423B2 (en) 2015-06-12 2017-04-04 Google Inc. Using a depth map of a monitored scene to identify floors, walls, and ceilings
US9386230B1 (en) 2015-06-12 2016-07-05 Google Inc. Day and night detection based on one or more of illuminant detection, lux level detection, and tiling
US9554063B2 (en) 2015-06-12 2017-01-24 Google Inc. Using infrared images of a monitored scene to identify windows
US9454820B1 (en) 2015-06-12 2016-09-27 Google Inc. Using a scene illuminating infrared emitter array in a video monitoring camera for depth determination
US9235899B1 (en) 2015-06-12 2016-01-12 Google Inc. Simulating an infrared emitter array in a video monitoring camera to construct a lookup table for depth determination
US9886620B2 (en) 2015-06-12 2018-02-06 Google Llc Using a scene illuminating infrared emitter array in a video monitoring camera to estimate the position of the camera
WO2017007795A1 (en) * 2015-07-07 2017-01-12 Intuitive Surgical Operations, Inc. Control of multiple devices
US10863562B2 (en) 2015-08-20 2020-12-08 Hewlett-Packard Development Company, L.P. Peripheral device pairing
US10530977B2 (en) 2015-09-16 2020-01-07 Fluke Corporation Systems and methods for placing an imaging tool in a test and measurement tool
WO2017070629A1 (en) 2015-10-23 2017-04-27 Fluke Corporation Imaging tool for vibration and/or misalignment analysis
US10893028B2 (en) * 2017-05-20 2021-01-12 Deka Products Limited Partnership System and method for secure remote control of a medical device
US10908045B2 (en) 2016-02-23 2021-02-02 Deka Products Limited Partnership Mobility device
US11399995B2 (en) 2016-02-23 2022-08-02 Deka Products Limited Partnership Mobility device
US10926756B2 (en) 2016-02-23 2021-02-23 Deka Products Limited Partnership Mobility device
US10055368B2 (en) * 2016-02-26 2018-08-21 Sandisk Technologies Llc Mobile device and method for synchronizing use of the mobile device's communications port among a plurality of applications
US10541987B2 (en) 2016-02-26 2020-01-21 Tandem Diabetes Care, Inc. Web browser-based device communication workflow
US10749986B2 (en) 2016-04-11 2020-08-18 Samsung Electronics Co., Ltd. Platform for interaction via commands and entities
US10621581B2 (en) 2016-06-11 2020-04-14 Apple Inc. User interface for transactions
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
DK201670582A1 (en) 2016-06-12 2018-01-02 Apple Inc Identifying applications on which content is available
DK201670581A1 (en) 2016-06-12 2018-01-08 Apple Inc Device-level authorization for viewing content
US10346457B2 (en) * 2016-07-27 2019-07-09 Microsoft Technology Licensing, Llc Platform support clusters from computer application metadata
WO2018022312A1 (en) * 2016-07-29 2018-02-01 CIS Secure Computing, Inc. Positive disconnect unit
US11283245B2 (en) 2016-08-08 2022-03-22 Global Plasma Solutions, Inc. Modular ion generator device
US11695259B2 (en) 2016-08-08 2023-07-04 Global Plasma Solutions, Inc. Modular ion generator device
US10564803B2 (en) 2016-08-18 2020-02-18 Samsung Electronics Co., Ltd. Selecting application that can handle data content
US10624019B2 (en) * 2016-08-30 2020-04-14 Hyungkoo Lee Wireless transceiver system
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US11188947B2 (en) 2016-10-05 2021-11-30 Abl Ip Holding, Llc Analyzing movement of data collectors/gateways associated with retail displays
US10496808B2 (en) 2016-10-25 2019-12-03 Apple Inc. User interface for managing access to credentials for use in an operation
US11966560B2 (en) 2016-10-26 2024-04-23 Apple Inc. User interfaces for browsing content from multiple content applications on an electronic device
US10180615B2 (en) 2016-10-31 2019-01-15 Google Llc Electrochromic filtering in a camera
CN106603860A (zh) * 2016-12-30 2017-04-26 百度在线网络技术(北京)有限公司 通信连接建立方法及系统、移动终端与车载设备
JP6719120B2 (ja) * 2017-01-25 2020-07-08 株式会社ルースヒースガーデン 防犯システム、防犯方法、および、防犯プログラム
CN107241485A (zh) * 2017-04-19 2017-10-10 太仓诚泽网络科技有限公司 一种采用网关自动识别多媒体格式的方法
TWI637314B (zh) * 2017-05-10 2018-10-01 趙平 智慧型耳機裝置個人化系統及其使用方法
US20180374069A1 (en) 2017-05-19 2018-12-27 Shelfbucks, Inc. Pressure-sensitive device for product tracking on product shelves
JP2020523832A (ja) * 2017-06-05 2020-08-06 コムスコープ テクノロジーズ リミティド ライアビリティ カンパニー 複数のラックに設置されたインテリジェントパッチング装置のネイティブサポートを有するラックコントローラ
KR102367053B1 (ko) * 2017-07-13 2022-02-24 삼성전자주식회사 외부 전자 장치와 통신을 수행하기 위한 전자 장치
EP4155988A1 (en) 2017-09-09 2023-03-29 Apple Inc. Implementation of biometric authentication for performing a respective function
KR102185854B1 (ko) 2017-09-09 2020-12-02 애플 인크. 생체측정 인증의 구현
WO2019055716A1 (en) * 2017-09-13 2019-03-21 Varex Imaging Corporation X-RAY IMAGING COMPONENT COMMUNICATION SYSTEM AND PROTOCOL
US10425335B2 (en) * 2017-09-19 2019-09-24 Sap Se Reconstructing message flows based on hash values
US11057352B2 (en) 2018-02-28 2021-07-06 Xaptum, Inc. Communication system and method for machine data routing
US10965653B2 (en) 2018-03-28 2021-03-30 Xaptum, Inc. Scalable and secure message brokering approach in a communication system
CN108665232A (zh) * 2018-04-16 2018-10-16 中山易美信息技术有限公司 一种手机端办公自动化系统
US10805439B2 (en) 2018-04-30 2020-10-13 Xaptum, Inc. Communicating data messages utilizing a proprietary network
US10454503B1 (en) * 2018-05-18 2019-10-22 Aram Falsafi System and method for wireless communication with improved protocol support
US11170085B2 (en) 2018-06-03 2021-11-09 Apple Inc. Implementation of biometric authentication
US10924593B2 (en) 2018-08-31 2021-02-16 Xaptum, Inc. Virtualization with distributed adaptive message brokering
US10860096B2 (en) 2018-09-28 2020-12-08 Apple Inc. Device control using gaze information
US11100349B2 (en) 2018-09-28 2021-08-24 Apple Inc. Audio assisted enrollment
CN109508276B (zh) * 2018-11-09 2023-03-14 四川长虹电器股份有限公司 提高Android平台上设备工厂检测效率的方法
US10938877B2 (en) 2018-11-30 2021-03-02 Xaptum, Inc. Optimizing data transmission parameters of a proprietary network
US10912053B2 (en) 2019-01-31 2021-02-02 Xaptum, Inc. Enforcing geographic restrictions for multitenant overlay networks
WO2020171248A1 (ko) * 2019-02-19 2020-08-27 모비케이 주식회사 무선인증 기반의 악세서리를 이용한 온라인 콘텐츠 제공 시스템 및 이에 사용되는 스마트폰 케이스
EP3927391A4 (en) 2019-02-19 2022-11-16 Tandem Diabetes Care, Inc. SYSTEM AND METHOD FOR PAIRING AN INFUSION PUMP WITH A REMOTE CONTROL DEVICE
US11363004B2 (en) 2019-03-08 2022-06-14 International Business Machines Corporation Secure device relay
US11328352B2 (en) 2019-03-24 2022-05-10 Apple Inc. User interfaces for managing an account
US11445263B2 (en) 2019-03-24 2022-09-13 Apple Inc. User interfaces including selectable representations of content items
CN113906419A (zh) 2019-03-24 2022-01-07 苹果公司 用于媒体浏览应用程序的用户界面
EP3928526A1 (en) 2019-03-24 2021-12-29 Apple Inc. User interfaces for viewing and accessing content on an electronic device
US11683565B2 (en) 2019-03-24 2023-06-20 Apple Inc. User interfaces for interacting with channels that provide content that plays in a media browsing application
EP3946514A4 (en) 2019-03-26 2022-12-21 Tandem Diabetes Care, Inc. METHOD OF PAIRING AN INFUSION PUMP WITH A REMOTE CONTROL DEVICE
US11797606B2 (en) 2019-05-31 2023-10-24 Apple Inc. User interfaces for a podcast browsing and playback application
US11863837B2 (en) 2019-05-31 2024-01-02 Apple Inc. Notification of augmented reality content on an electronic device
US11481094B2 (en) 2019-06-01 2022-10-25 Apple Inc. User interfaces for location-related communications
US11477609B2 (en) 2019-06-01 2022-10-18 Apple Inc. User interfaces for location-related communications
US11581709B2 (en) 2019-06-07 2023-02-14 Global Plasma Solutions, Inc. Self-cleaning ion generator device
CN110166630B (zh) * 2019-06-23 2021-06-29 重庆安连普电子有限公司 一种基于Type-C接口对手机网络安全监控的方法及系统
US11169830B2 (en) 2019-09-29 2021-11-09 Apple Inc. Account management user interfaces
KR102602556B1 (ko) 2019-09-29 2023-11-14 애플 인크. 계정 관리 사용자 인터페이스들
CN111045750B (zh) * 2019-12-19 2023-07-07 飞天诚信科技股份有限公司 多应用设备上自动匹配应用程序的方法及电子设备
CN113254367A (zh) * 2020-02-11 2021-08-13 合肥杰发科技有限公司 一种基于iAP1协议的命令处理方法、电子设备以及存储介质
US11843838B2 (en) 2020-03-24 2023-12-12 Apple Inc. User interfaces for accessing episodes of a content series
DK180985B1 (da) 2020-04-10 2022-09-02 Apple Inc Brugergrænseflader for muliggørelse af en aktivitet
US11899895B2 (en) 2020-06-21 2024-02-13 Apple Inc. User interfaces for setting up an electronic device
US11816194B2 (en) 2020-06-21 2023-11-14 Apple Inc. User interfaces for managing secure operations
CN114265601A (zh) * 2020-09-16 2022-04-01 伊姆西Ip控股有限责任公司 管理人工智能应用的方法、设备和程序产品
CN112165480B (zh) * 2020-09-22 2022-11-11 北京字跳网络技术有限公司 信息获取方法、装置和电子设备
FR3115130B1 (fr) * 2020-10-09 2023-04-14 Safran Electronics & Defense Procédé et système de gestion de compatibilité entre deux équipements
WO2022086566A1 (en) * 2020-10-23 2022-04-28 Hewlett-Packard Development Company, L.P. Event-based commands
US11720229B2 (en) 2020-12-07 2023-08-08 Apple Inc. User interfaces for browsing and presenting content
US11934640B2 (en) 2021-01-29 2024-03-19 Apple Inc. User interfaces for record labels
WO2023086414A1 (en) * 2021-11-09 2023-05-19 Audeo LLC Systems and methods for providing and using wearable electronic accessories

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101326797A (zh) * 2005-12-09 2008-12-17 索尼爱立信移动通讯有限公司 VoIP配件
CN101485176A (zh) * 2006-05-22 2009-07-15 苹果公司 用于便携式电子设备的通信协议

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05252228A (ja) 1992-03-02 1993-09-28 Mitsubishi Electric Corp データ伝送装置及びその通信路管理方法
US5596723A (en) * 1994-06-23 1997-01-21 Dell Usa, Lp Method and apparatus for automatically detecting the available network services in a network system
US5938738A (en) * 1997-11-03 1999-08-17 Mustek Systems Inc. Peripheral control system
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6438616B1 (en) * 1997-12-18 2002-08-20 Sun Microsystems, Inc. Method and apparatus for fast, local corba object references
US6189102B1 (en) 1998-05-27 2001-02-13 3Com Corporation Method for authentication of network devices in a data-over cable system
US6604157B1 (en) * 1999-02-19 2003-08-05 Hewlett-Packard Development Company System and method for allowing a user to select and scan from a peripheral to a target application on a host system
US6251014B1 (en) 1999-10-06 2001-06-26 International Game Technology Standard peripheral communication
FR2800540B1 (fr) 1999-10-28 2001-11-30 Bull Cp8 Terminal securise muni d'un lecteur de carte a puce destine a communiquer avec un serveur via un reseau de type internet
US6789111B1 (en) 1999-12-09 2004-09-07 Microsoft Corporation Automatic detection and installation of client peripheral devices by a server
JP2001320479A (ja) * 2000-05-10 2001-11-16 Nec Niigata Ltd 携帯電話機の接続装置及び接続方法、コンピュータ、並びに接続ケーブル
US20060031126A1 (en) * 2000-12-08 2006-02-09 Clarinet Systems, Inc. Method and for facilitating network communication between a wireless device and a service system via an interface
US7546298B2 (en) * 2001-01-09 2009-06-09 Nextair Corporation Software, devices and methods facilitating execution of server-side applications at mobile devices
KR100416342B1 (ko) * 2001-02-06 2004-01-31 주식회사 케이티프리텔 Sms와 무선 인터넷을 이용한 데이터 수신 방법 및시스템
US7099333B2 (en) * 2001-03-07 2006-08-29 Lucent Technologies Inc. Automatic protocol version detection and call processing reconfiguration in a communication system
US6671749B2 (en) * 2001-03-07 2003-12-30 Hewlett-Packard Development Company, L.P. Peripheral driver installation method and system
JP2002335344A (ja) * 2001-03-07 2002-11-22 Casio Comput Co Ltd 接続ユニット、無線通信システム、接続ユニットの制御方法、及び、無線通信方法
US7209470B2 (en) 2001-03-16 2007-04-24 Intel Corporation Method and apparatus for encapsulating universal serial bus messaging over link layer communication protocol
KR100671153B1 (ko) 2001-04-25 2007-01-17 엘지전자 주식회사 디바이스 드라이버 설치방법
AUPR571801A0 (en) * 2001-06-15 2001-07-12 Polartechnics Limited Apparatus for tissue type recognition using multiple measurement techniques
WO2003012577A2 (en) 2001-07-31 2003-02-13 Silicom Ltd. Device-related software installation
CN100392626C (zh) * 2001-11-20 2008-06-04 森维公司 网络化设备的访问和控制系统
US20030149874A1 (en) 2002-02-06 2003-08-07 Xerox Corporation Systems and methods for authenticating communications in a network medium
KR100444996B1 (ko) 2002-02-08 2004-08-21 삼성전자주식회사 인터넷을 통한 디바이스 드라이버 자동 설치 및 유지 보수방법 및 그 시스템
US20030158954A1 (en) 2002-02-19 2003-08-21 Williams Terry L. Software-defined radio communication protocol translator
US6742061B1 (en) 2002-03-08 2004-05-25 Nokia Corporation Accessory control interface
EP1347623A1 (en) * 2002-03-22 2003-09-24 Nokia Corporation Downloading of application software for an accessory device to a mobile terminal
US20030220988A1 (en) * 2002-05-22 2003-11-27 Hymel James A. Method and electronic device for establishing an interface to control an accessory device
US8005505B2 (en) * 2002-06-25 2011-08-23 Hewlett-Packard Development Company, L.P. Identifying remote, external devices and facilitating communication therewith
US6976092B1 (en) * 2002-09-17 2005-12-13 Bellsouth Intellectual Property Corp. System that using transport protocol objects located at agent location to generate session ID and to provide translation between different instant messaging protocols
US7062261B2 (en) * 2003-01-31 2006-06-13 Motorola, Inc. Method and apparatus for automatic detection and installation of Java-enabled accessories
KR100447526B1 (ko) * 2003-03-18 2004-09-08 엔에이치엔(주) 인터넷 사용자의 접속 의도 판단 방법 및 이를 이용한인터넷 상의 광고 방법과 그 시스템
US7062260B2 (en) * 2003-03-27 2006-06-13 Nokia Corporation Fetching application and driver for extension device from network
US20050097248A1 (en) 2003-10-29 2005-05-05 Kelley Brian H. System and method for establishing a communication between a peripheral device and a wireless device
CA2544024C (en) 2003-11-02 2013-04-02 Yossy Sela Mobile telephone gateway apparatus, communication system, and gateway operating system
US7519719B2 (en) 2004-04-15 2009-04-14 Agilent Technologies, Inc. Automatic creation of protocol dependent control path for instrument application
US7526588B1 (en) 2004-04-27 2009-04-28 Apple Inc. Communication between an accessory and a media player using a protocol with multiple lingoes
US8117651B2 (en) * 2004-04-27 2012-02-14 Apple Inc. Method and system for authenticating an accessory
US20050262269A1 (en) * 2004-05-20 2005-11-24 Pike Jimmy D System and method for information handling system PCI express advanced switching
JP4342393B2 (ja) * 2004-07-14 2009-10-14 株式会社東芝 携帯端末機器に装着される電子装置及び電子装置の制御方法
US20090024757A1 (en) * 2004-07-30 2009-01-22 Proctor David W Automatic Protocol Determination For Portable Devices Supporting Multiple Protocols
US7493327B1 (en) * 2004-09-23 2009-02-17 Microsoft Corporation Schema-facilitated device capability discovery
JP4473695B2 (ja) 2004-10-01 2010-06-02 パナソニック株式会社 通信端末装置、電化機器及び通信方法
KR101086843B1 (ko) * 2005-06-30 2011-11-24 호야 가부시키가이샤 상흔들림 보정장치
US8755845B2 (en) * 2005-07-01 2014-06-17 Plantronics, Inc. Wireless headset systems and methods for activating application programs on processor-based host
JP4764670B2 (ja) * 2005-07-29 2011-09-07 テックファーム株式会社 非接触送受信システム及び携帯情報端末
JP4107315B2 (ja) * 2005-08-30 2008-06-25 コニカミノルタビジネステクノロジーズ株式会社 情報機器、その制御方法、および、制御プログラム
US7873384B2 (en) * 2005-09-01 2011-01-18 Broadcom Corporation Multimode mobile communication device with configuration update capability
US9009265B2 (en) * 2005-09-28 2015-04-14 Photobucket Corporation System and method for automatic transfer of data from one device to another
DE102005048427B3 (de) 2005-10-07 2007-05-31 Audioton Kabelwerk Gmbh Zweigniederlassung Scheinfeld Kommunikations-Anordnung für ein Fahrzeug
US7636030B2 (en) * 2005-10-26 2009-12-22 Rockwell Automation Technologies, Inc. Security layers for wireless industrial control user interface
JP2007135054A (ja) * 2005-11-11 2007-05-31 Felica Networks Inc 携帯通信装置,情報処理方法,およびコンピュータプログラム
US7783702B2 (en) * 2005-11-30 2010-08-24 Microsoft Corporation Using a mobile phone to control a personal computer
US20070180445A1 (en) * 2006-01-30 2007-08-02 Microsoft Corporation Download Service For Device Drivers
GB0603781D0 (en) * 2006-02-24 2006-04-05 Nokia Corp Application verification
US7616760B2 (en) 2006-04-05 2009-11-10 Sony Ericsson Mobile Communications Ab Headset for use with a communication and/or multimedia device
US7689168B2 (en) 2006-03-30 2010-03-30 Sony Ericsson Mobile Communications Ab Remote user interface for Bluetooth™ device
US20080021767A1 (en) * 2006-04-05 2008-01-24 Amanda Benson System and method for collecting and managing product information in a database
EP1898306A1 (en) 2006-09-11 2008-03-12 Research In Motion Limited Method and apparatus for variably enabling USB interaction
US8584115B2 (en) * 2006-10-05 2013-11-12 International Business Machines Corporation Automated operating system device driver updating system
US7966428B2 (en) * 2006-10-31 2011-06-21 Apple Inc. Control of electronic devices based on capability descriptions
JP2008210301A (ja) * 2007-02-28 2008-09-11 Sony Corp 記憶媒体、通信システム、並びに制御装置。
JP2008219621A (ja) * 2007-03-06 2008-09-18 Hitachi Communication Technologies Ltd 通話録音機能付き電話機およびその情報処理方法
US20080240058A1 (en) * 2007-04-02 2008-10-02 Broadcom Corporation Simultaneous wlan communications to carry personal area network communications
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
US8078787B2 (en) * 2007-06-22 2011-12-13 Apple Inc. Communication between a host device and an accessory via an intermediate 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
US20090181649A1 (en) 2008-01-10 2009-07-16 Bull William E Dynamic Delivery and Presentation of Electronic Data to Mobile Electronic Devices
US8719454B2 (en) * 2008-03-19 2014-05-06 Intel Corporation Enabling peripheral communication in a local area network
EP2106107B1 (en) * 2008-03-27 2012-04-18 Motorola Mobility, Inc. Method and apparatus for automatic near field communication application selection in an electronic device
US8289688B2 (en) * 2008-04-01 2012-10-16 Litl, Llc Portable computer with multiple display configurations
EP2139211A1 (en) * 2008-06-27 2009-12-30 Axalto S.A. System and method of extending smart card capability via a coupling with a portable electronic device
US8527688B2 (en) * 2008-09-26 2013-09-03 Palm, Inc. Extending device functionality amongst inductively linked devices
US20100107097A1 (en) * 2008-10-16 2010-04-29 Andrew Rodney Ferlitsch Client device with extensible imaging device driver and method implementing same
US20100138914A1 (en) 2008-12-01 2010-06-03 Research In Motion Limited System and method of providing biometric quick launch
US20100161720A1 (en) 2008-12-23 2010-06-24 Palm, Inc. System and method for providing content to a mobile device
US20100255908A1 (en) * 2009-01-29 2010-10-07 Stephen Michael Grimes Multimedia-enabled physical trading card
US8452903B2 (en) * 2009-03-16 2013-05-28 Apple Inc. Mobile computing device capabilities for accessories
US20120081207A1 (en) 2010-09-30 2012-04-05 Apple Inc. Application launching in conjunction with an accessory
US8639733B2 (en) * 2009-03-16 2014-01-28 Apple Inc. Automatic identification of compatible applications and 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101326797A (zh) * 2005-12-09 2008-12-17 索尼爱立信移动通讯有限公司 VoIP配件
CN101485176A (zh) * 2006-05-22 2009-07-15 苹果公司 用于便携式电子设备的通信协议

Also Published As

Publication number Publication date
US20120023199A1 (en) 2012-01-26
EP2642402B1 (en) 2014-12-24
AU2010226111A1 (en) 2011-10-13
JP2010233217A (ja) 2010-10-14
EP2642401A2 (en) 2013-09-25
DE112010001170T5 (de) 2012-05-31
US20170318137A1 (en) 2017-11-02
US20100233961A1 (en) 2010-09-16
EP2230605B1 (en) 2021-12-01
US8554924B2 (en) 2013-10-08
US20100235454A1 (en) 2010-09-16
DE112010001170B4 (de) 2019-02-28
US8402128B2 (en) 2013-03-19
US20100235518A1 (en) 2010-09-16
US9069908B2 (en) 2015-06-30
MX2011009737A (es) 2011-12-16
GB201117660D0 (en) 2011-11-23
US20100235373A1 (en) 2010-09-16
US20100235425A1 (en) 2010-09-16
JP4842383B2 (ja) 2011-12-21
EP2642402A2 (en) 2013-09-25
AU2010226111B2 (en) 2013-01-24
KR101346541B1 (ko) 2013-12-31
EP2642402A3 (en) 2013-11-06
KR20110129473A (ko) 2011-12-01
EP2428899A1 (en) 2012-03-14
HK1164584A1 (en) 2012-09-21
US20120023185A1 (en) 2012-01-26
CN105162955A (zh) 2015-12-16
GB2481349B (en) 2014-01-29
CN105162955B (zh) 2018-07-31
EP2230605A1 (en) 2010-09-22
BRPI1009309B1 (pt) 2021-11-16
US8700789B2 (en) 2014-04-15
US8775652B2 (en) 2014-07-08
US20100235552A1 (en) 2010-09-16
US8639733B2 (en) 2014-01-28
CN102428665A (zh) 2012-04-25
BRPI1009309A2 (pt) 2016-03-08
WO2010107660A1 (en) 2010-09-23
JP2012075110A (ja) 2012-04-12
EP2642401A3 (en) 2013-10-30
JP5599768B2 (ja) 2014-10-01
US20160036949A1 (en) 2016-02-04
US9736281B2 (en) 2017-08-15
US8341318B2 (en) 2012-12-25
US8402145B2 (en) 2013-03-19
GB2481349A (en) 2011-12-21

Similar Documents

Publication Publication Date Title
CN102428665B (zh) 使用应用通信协议的附件和移动计算设备通信
US20170013066A1 (en) Application launching in conjunction with an accessory
CN102870064B (zh) 用于定位与用户设备一起使用的配件和应用程序的方法和系统
AU2011101205B4 (en) Accessory and mobile computing device communication using an application communication protocol
AU2013205261B2 (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
C14 Grant of patent or utility model
GR01 Patent grant