專利名稱:使用應用通信協議的附件和移動計算設備通信的制作方法
使用應用通信協議的附件和移動計算設備通信
背景技術:
本公開一般涉及移動計算設備與附件之間的通信,并且具體地涉及將特定于附件和/或應用的協議用于這樣的通信。移動計算設備已廣泛普及。舉幾個例子,各個公司已開發出如下移動計算設備,例如,iPhone、iPod Touch、BlackBerry 設備、以及兼容 Google 的 Android 平臺的智能電話。移動計算設備通常包括web瀏覽器、字處理器、電子郵件應用、地圖、電話服務、游戲、音頻應用、視頻應用等。此外,還開發出了用于移動計算設備的附件。這樣的附件可以利用一個或多個連接器和/或端口來與移動計算設備通信。這些附件可被用來控制移動計算設備的特征或者被移動計算設備用來與用戶和/或環境交互。
發明內容
根據各個實施例,附件可以利用特定于附件的通信協議和/或特定于應用的通信協議來與運行在移動計算設備上的應用通信。例如,當附件與移動計算設備相耦合時,其可以利用移動計算設備定義的附件協議來執行初始化、標識和/或認證過程。附件還可以傳輸信息,該信息指示可由運行在移動計算設備上的應用用來與附件通信的一個或多個應用協議。在一些實施例中,應用協議可以不同于附件協議,而在其它實施例中,應用協議可以與附件協議相同。在一些實施例中,應用協議分組可被嵌套在附件協議分組的多個部分內。這里公開的各個實施例描述了用于在附件與應用之間創建通信會話的方法。一些實施例描述了附件如何為移動計算設備提供合適的信息以利用應用協議舉行通信會話。其它實施例描述了移動計算設備處的各種方案,用于選擇應用協議、開通通信流、下載優選應用、與附件通信、將應用協議分組嵌套在附件協議分組內等等。在一些實施例中,運行在移動計算設備處的應用管理器可被用來抽象化附件與應用之間的通信。下面的詳細描述與附圖一起將提供對這里公開的實施例的性質和優點的更好理解。
圖IA示出了根據本發明一些實施例的與附件設備相耦合的移動計算設備。圖IB示出了根據本發明一些實施例的無線地與移動計算使設備相耦合的附件設備。圖2示出了根據一個實施例的與附件相耦合的移動計算設備的框圖。圖3是示出根據本發明一些實施例的移動計算設備內的各個模塊和處理的框圖。圖4是根據本發明一些實施例的進一步圖示出應用與附件之間的通信的簡化示圖。圖5A-5C圖示出了根據本發明一些實施例的將應用協議消息封裝在附件通信協議命令內的一個示例。圖6圖示出了根據本發明一些實施例的圖4的實施例中的附件通信協議的命令的路徑。圖7是根據本發明一些實施例的用于標識附件和兼容應用的處理的流程圖。圖8示出了根據本發明一些實施例的可用于將兼容應用與附件相關聯的相連協議列表和所支持協議表。圖9圖示出根據本發明一些實施例的用于制定可用于定位用于附件的兼容應用的查詢的技術。圖10是根據本發明一些實施例的可由應用執行來發起與附件的通信的處理的流程圖。圖11圖示出了根據本發明一些實施例的同時與兩個不同附件交互的移動計算設備上的應用。圖12圖示出了根據本發明一些實施例的同時與兩個不同附件交互的移動計算設備上的兩個應用。圖13圖示出了根據本發明一些實施例的同時與同一附件交互的移動計算設備上的兩個應用。圖14圖示出了根據本發明一些實施例的移動計算設備的應用、應用管理器和硬件傳輸層之間的數據的流程。圖15是根據本發明一些實施例的可由移動計算設備處的應用管理器執行的處理的流程圖。圖16是根據本發明一些實施例的可由移動計算設備處的應用管理器執行的處理的另一流程圖。圖17是根據本發明一些實施例的可由與移動計算設備相耦合的附件執行來開展與附件的通信的處理的流程圖。圖18是根據本發明一些實施例的可由移動計算設備處的應用執行來開展與附件的通信的處理的流程圖。
具體實施例方式這里公開的本發明的各個實施例涉及移動計算設備與附件設備之間的通信的各個方面。在一些實施例中,附件可以利用附件通信協議與移動計算設備通信。附件通信協議可以指定通信命令、傳輸鏈路、認證例程、標識處理、專門語言(lingo)、分組結構、數據類型或者可用于移動計算設備與附件設備之間的通信的任何其它合適的命令或數據。在移動計算設備上運行的應用還可以利用應用通信協議來與附件通信。在一些實施例中,應用通信協議可以指定用于該應用與附件之間的通信的通信命令、分組結構、數據類型、專門語言、消息格式等。在一些實施例中,由應用通信協議指定的通信命令、分組結構、數據類型、專門語言、消息格式中的至少一些可以不同于由附件通信協議指定的那些。 在其它實施例中,由應用通信協議指定的通信命令、分組結構、數據類型、專門語言、消息格式中的至少一些可以與由附件通信協議指定的那些相同。在一些實施例中,應用協議可以使用由附件通信協議指定的傳輸鏈路。應用通信協議例如可由應用和/或附件的開發者來開發。在一些實施例中,應用通信協議可以包括特定于應用和/或附件的命令、數據結構等。此外,術語“應用通信協議”和“應用協議”可互換使用。術語“附件通信協議”、“附件通信協議”、“一般通信協議”和“一般協議”也可互
換使用。圖IA示出了與附件設備113相耦合的移動計算設備102。線纜111用來將移動計算設備102與附件設備113相耦合。線纜111可以包括與移動計算設備102相連的連接器 108以及與附件設備113相連的連接器110。圖IB示出了與移動計算設備102無線地耦合的附件設備113。圖IA和IB所示的移動計算設備可以為任何類型的移動計算和/或通信設備而不受限制。例如,可以使用iPod Touch 、iPhone 、兼容Android的設備和/或Blackberry 設備。此外,移動計算設備102可以提供媒體播放器能力、聯網、web瀏覽、電子郵件、字處理、數據存儲、應用運行和/或任何其它計算或通信功能。附件113可以是能夠與移動計算設備102通信的任何設備,例如外部揚聲器系統; 外部視頻設備;多媒體設備;消費電子設備;測試儀器;家用電器(例如電冰箱或洗碗機); 健身器材;安全系統;家庭或辦公室自動化系統;相機;用戶輸入設備(例如,鍵盤、鼠標、 游戲控制器);測量設備;醫療設備(例如,葡萄糖監視儀或胰島素監視儀);銷售點設備; 汽車;汽車附件(例如,汽車立體聲音響系統或汽車導航系統);無線電(例如,FM、AM和/ 或衛星);飛機、巴士、火車或其它公共交通運輸車輛上的娛樂控制臺;等等。可與移動計算設備聯合使用的任何類型的設備可被用作附件設備。圖2示出了根據一個實施例的與附件202(例如,實現圖IA或IB的附件113)相耦合的移動計算設備200(例如,實現圖IA或IB的移動計算設備10 的框圖。移動計算設備200可以包括處理器230、存儲設備225、用戶接口(UI) 235、網絡接口 236以及附件輸入/輸出(I/O)接口 205。可實現為一個或多個集成電路(例如包括傳統的微處理器或微控制器)的處理器 230可以控制移動計算設備200的操作。例如,響應于通過用戶接口 235提供的用戶輸入信號,處理器206可以執行各種任務,例如,選擇并播放可能存儲在存儲設備225中的媒體資產;利用網絡接口 236訪問各種網絡(例如,移動電話網絡、因特網、局域網等)以發送和/ 或檢索數據;運行駐留在存儲設備225上的各種應用程序(Apps) 2 ;等等。處理器230還可以管理經由附件I/O接口 205與附件的通信。用戶接口 235可以包括諸如觸摸板、觸摸屏、滾輪、點觸輪(click wheel)、撥號盤、按鈕、小鍵盤、麥克風等的輸入控制裝置,諸如顯示屏、指示燈、揚聲器、耳機插孔等的輸出設備,以及支持電子裝置(例如,數模或模數轉換器、信號處理器等)。用戶可以操作用戶接口 235的各個輸入控制裝置來調用移動計算設備200的功能,并且還可以經由用戶接口 235來觀看和/或收聽來自移動計算設備200的輸出。存儲設備225例如可以利用盤、閃存或任何其它非易失性存儲介質來實現。存儲設備225可以存儲可由處理器230運行的應用程序226、系統程序和其它程序代碼(未明確示出),以及可用來管理與各種附件的通信的諸如協議表227之類的各種數據。在一些實施例中,存儲設備225還可以存儲可由移動通信設備200播放的諸如音頻、視頻、靜止圖像等的媒體資產,以及描述媒體資產的元數據(例如,資產名稱、藝術家、標題、流派等)、播放列表(可順序地或按隨機順序播放的資產的列表)等等。存儲設備225還可以存儲任何其它類型的信息,例如有關用戶的聯系方式的信息(名字、地址、電話號碼等);所安排的約會和事件;備忘錄;和/或其它個人信息。應用程序(在這里也稱為“應用”或“apps”)2 可包括可由處理器230運行的任何程序。在一些實施例中,某些應用可由其制造商安裝在移動計算設備200上,而其它應用可由用戶安裝。應用程序的示例可以包括視頻游戲應用、個人信息管理程序、用于播放媒體資產和/或導航媒體資產數據庫的程序、用于控制電話界面撥打和/或接收電話的程序,等等。某些應用程序2 可以提供與附件202的通信和/或對附件202的控制,并且某些應用程序2 可以響應于來自附件202的控制信號或其它輸入;下面描述示例。網絡接口 236可以提供到一個或多個通信網絡的接口。例如,網絡接口 236可以包括射頻(RF)收發機以及用于經由諸如移動電話網絡之類的移動通信網絡通信的合適組件。另外或者替代地,網絡接口 236可以包含到因特網(例如,WiFi收發機、3G收發機等)、 到個人區域網絡(例如,藍牙網絡)或任何其它網絡的無線連接。在其它實施例中,還可以提供有線網絡連接(例如,以太網)。在一些實施例中,同一硬件可用來支持到多個網絡的連接;因此,網絡接口 236可以包括模數和/或數模電路、基帶處理組件(例如,編解碼器、 信道估計器等)、調制器、解調器、振蕩器、放大器、發送器、接收器、收發器、內部和/或外部天線等等。在一些實施例中,與網絡連通性相關聯的一些操作可以全部或部分地被實現為在處理器230上運行的程序(例如,數字域中的編碼、解碼和/或其它處理),或者專用數字信號處理器可被提供。附件I/O接口 205可以包括多條信號路徑,這多條信號路徑被配置為運載移動計算設備200與附件202之間的各種信號。在一個實施例中,附件I/O接口 205包括與蘋果公司制造并銷售的iPod 和iPhone 產品上所使用的連接器相對應的30引腳連接器;也可以使用其它連接器。替代地或另外,附件I/O接口 205可以包括無線接口(例如,藍牙等)。在一些實施例中,移動計算設備200還可以利用附件I/O接口 205來與主機計算機(未示出)通信,該主機計算機運行可以為移動計算設備提供媒體和/或應用的資產管理程序(例如,iTunes 或者Microsoft的應用商店)。資產管理程序可以使用戶能夠向移動計算設備200添加媒體資產和/或應用,和/或從移動計算設備200移除媒體資產。用戶可以更新與移動計算設備200上的媒體資產相關聯的元數據。在一些實施例中,用戶還可以與資產管理程序交互來創建并更新播放列表和/或應用以及其它文檔。在一個實施例中,主機計算機維護媒體資產和/或應用的主數據庫(master database),并且可以例如通過因特網訪問其它數據庫(包括關聯數據庫和播放列表),并且只要移動計算設備200連接到主機計算機,資產管理程序就自動地將主數據庫與在移動計算設備200的存儲設備225 上維護的數據庫同步。在其它實施例中,移動計算設備200可以使用網絡接口 236來與主機計算機通信和/或直接與各種其它服務器通信,以獲取應用、媒體資產和/或其它數據。附件202可以包括控制器沈0、用戶接口 255、移動計算設備I/O接口 250、存儲器 265和附件特定硬件275。移動計算設備I/O接口 250可以包括被配置來運載附件202與移動計算設備200 之間的各種信號的多條信號路徑。在一個實施例中,移動計算設備I/O接口 250可以包括適于與蘋果公司制造并銷售的iPod 和iPhone 產品上所使用的30引腳連接器相配的連接器。也可以使用其它連接器;例如,移動計算設備1/0接口 250可以包括標準USB或Fire Wire連接器等。替代地或另外,移動計算設備1/0接口 250可以包括無線接口(例如,藍牙等)。 控制器260例如可以包括運行程序代碼以執行各種功能的微處理器或微控制器, 這些功能例如是數字音頻解碼、模擬或數字音頻和/或視頻處理、用戶輸入的處理、附件功能的控制等。控制器260還可以管理經由移動計算設備I/O接口 250與移動計算設備的通用戶接口 255可以包括諸如觸摸板、觸摸屏、滾輪、點觸輪、撥號盤、按鈕、小鍵盤、 麥克風、探針等的輸入控制裝置,諸如視頻屏幕、指示燈、揚聲器、耳機插孔等的輸出設備, 以及支持電子裝置(例如,數模或模數轉換器、信號處理器等)。用戶可以操作用戶接口 255 的各個輸入控制裝置來調用附件202的功能,并且可以經由用戶接口 255來觀看和/或收聽來自附件202的輸出。另外,在一些實施例中,用戶可以經由附件用戶接口 255來操作移動計算設備200 (或運行在其上的應用)。存儲器265可以利用任何類型的存儲器、盤、或可存儲用于控制器260的程序代碼和/或數據的任何其它存儲介質來實現。例如,存儲設備265可以存儲附件特定軟件觀0, 該附件特定軟件280可以為控制器260提供與附件特定硬件275和/或用戶接口 255交互的指令。在一些實施例中,附件202可以接收來自移動計算設備200的信息(例如,用戶輸入、元數據和/或應用數據),并且這樣的信息也可被存儲在存儲器265中。附件特定硬件275可以表示使能附件202的渴望功能所需的任何硬件。例如,附件特定硬件275可以包括一個或多個數據搜集設備,例如任何類型的傳感器或儀表。在一些實施例中,附件特定硬件275可以包括生成表示電特性(電阻、電壓差等)的數據的電子儀表;檢測光和/或光的圖案的光傳感器;運動傳感器;溫度傳感器;濕度傳感器;壓力傳感器;對所選化學品(例如,可能地,諸如一氧化碳之類的有毒氣體)的存在作出響應的化學傳感器;等等。附件特定硬件275還可以包括一個或多個醫療設備,例如葡萄糖計量儀、 呼吸儀、心率和/或心功能監視儀、血壓監視儀等。在一些實施例中,包括有數據搜集設備的附件特定硬件275可以提供與物理數據相對應的或者表示物理數據的一個或多個電信號(例如,電壓、電阻和/或電流)。可以使用多種格式的模擬和/或數字信號。附件特定硬件275還可以包括在將信號發送給控制器 260之前對信號進行處理的信號處理組件;在一些實施例中,附件特定硬件275可以直接將電信號發送給可以處理該信號的控制器沈0。例如,如果附件特定硬件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開發的并由Bluetooth 商標許可的短距離無線通信標準)、 WiFi (遵循IEEE 802. 11系列標準中的任一者)、無線個人區域網絡、紅外等)。在一些實施例中,可以利用有線和無線信道兩者來進行通信。在一些實施例中,移動計算設備與附件之間的多個通信信道可以同時打開,或者移動計算設備可以同時被連接到多個附件,其中每個附件使用不同的通信信道。無論特定的通信信道如何,只要移動計算設備200與附件202彼此相連,這些設備就可以通過按附件通信協議所指定的那樣交換命令和數據來進行通信。附件通信協議可以定義用于在移動計算設備200與附件202之間發送消息的格式。例如,附件通信協議可以指定每個消息在具有頭部、凈荷和/或尾部的分組中被發送。頭部可以提供諸如起始指示符、 分組長度和將由接收者處理的命令之類的基本信息,而凈荷提供與該命令相關聯的任何數據;關聯數據的量對于不同命令可以不同,并且一些命令可以提供可變長度凈荷。分組還可以包括尾部,尾部可以提供例如本領域已知的檢錯或糾錯碼和/或所需要的其它信息。在各個實施例中,附件通信協議可以定義用于指示將由接收者采取的動作;用信號通知任務的完成、狀態的改變或錯誤的發生;和/或標識關聯數據的性質的具體命令。在一些實施例中,命令可被定義為使得任何特定命令僅在一個方向上有效。附件通信協議還可以指定可用于在設備之間發送信號的一個或多個物理傳輸鏈路。例如,傳輸鏈路可以為USB鏈路、UART鏈路、Fire Wire鏈路、藍牙鏈路、WiFi鏈路、并行鏈路、串行鏈路等。在此層級上,附件通信協議可以指定例如起始字節、同步字節、停止字節和/或其它輔助信號。在一些實施例中,附件通信協議可以提供多個替代傳輸鏈路;因此單個移動計算設備可以支持通過多種無線鏈路(包括有線和/或無線鏈路)的通信。附件通信協議可以定義多種“專門語言”,其中“專門語言”一般是指可由各種類別的附件支持(或不支持)的一組相關命令。在一個實施例中,命令可由第一字節和第二字節唯一地標識,該第一字節標識該命令所屬的專門語言并且第二字節標識該專門語言內的特定命令。也可以使用其它命令結構。不需要所有附件、附件可被連接到的所有移動計算設備都支持附件通信協議內所定義的每種專門語言或者特定專門語言的每個命令(例如, 不同設備可能使用給定專門語言的不同版本)。在一些實施例中,被設計為彼此互操作的每個附件202和每個移動計算設備200 至少支持包含有所有這些設備共用的命令的“通用”專門語言。通用專門語言可以包括這樣的命令,這些命令使得移動計算設備和附件能夠向彼此標識其自身并且至少提供關于其各自能力的一些信息,包括各自支持哪些其他專門語言(如果有的話)以及在相連接時各自希望使用另一設備的哪些能力。通用專門語言還可以包括移動計算設備可用來驗證所聲稱的附件能力和身份 (或者反之,附件可用來驗證所聲稱的移動計算設備的能力和身份)的認證命令,并且如果認證不成功則附件(或移動計算設備)可被阻止調用某些命令或專門語言。例如,移動計算設備200內的認證管理器(未示出)可與附件202內的認證管理器(也未示出)通信, 以例如基于公鑰密碼系統和移動計算設備200的認證管理器內所維護的數字證書的商店來執行認證過程。附件通信協議的通用專門語言或另外的專門語言還可以包括“隧道傳輸”命令, “隧道傳輸”命令允許在移動計算設備200上所運行的應用2 與附件202之間交換任意信息。例如,TurmelToAcc命令可被定義為可由移動計算設備200發送給附件202。該命令的凈荷可以是任何數據、控制信號或者運行在移動計算設備200上的應用2 可以生成并發送給附件202的其它信息。類似地,TurmelToHost命令可被定義為可由附件202發送給移動計算設備200。該命令的凈荷可以是任何數據、控制信號或者附件202可生成并發送給運行在移動計算設備200上的應用2 的其它信息。這些隧道傳輸命令可被定義為使得附件通信協議對于凈荷內容是不可知的。下面描述用于管理通信以使得特定應用僅將數據、控制信號或其它信息發送給能夠處理它的附件(反之亦然)的技術的示例。在一些實施例中,附件可以利用應用通信協議來與API通信,該API與移動計算設備處的一個或多個應用相關聯。例如,這樣的通信可以使用上面討論的“隧道傳輸”命令。 在一些實施例中,附件可以利用附件通信協議來與與一個或多個應用相關聯的API通信。 在其它實施例中,附件還可以利用附件通信協議和/或應用通信協議中的任一者或兩者來與移動計算設備操作系統通信。因此,這里公開的實施例可用來利用應用通信協議和/或附件通信協議中的任一者或兩者來輔助從附件到移動計算設備處的應用、API和/或操作系統的通信。移動計算設備和附件支持的附件通信協議可以包括各種其它專門語言,例如,允許附件發送指示將被調用的移動計算設備功能的命令的簡單遠程專門語言、可用來傳輸與在附件上復制移動計算設備的用戶接口的全部或一部分有關的命令和數據的遠程用戶接口專門語言(從而支持更高級的遠程控制)、允許用戶通過操作移動計算設備來控制調諧器附件的調諧器專門語言、允許附件在移動計算設備上存儲數據的存儲專門語言,等等。任何專門語言或專門語言的組合,或者其它命令或命令組都可以結合這里描述的實施例被使用。將理解,這里描述的附件通信協議是說明性的并且變更和修改是可以的。這里描述的具體命令可被其它命令或命令的組合、或者其它類型的消息和格式替代。另外,不要求任何特定的移動通信設備或附件支持這里描述的所有命令和操作。如上面提到的,在移動計算設備200上運行的應用2 與附件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可以將輸入數據提供給控制器沈0。例如,附件特定硬件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支持應用協議APl ; 應用321和附件302支持應用協議AP2 ;并且應用322和附件300支持應用協議AP3。可構想第三方將能夠獨立地開發出應用和/或附件。如果兩個附件(或應用)將相同的附件協議名稱與實際上不兼容的應用協議相關聯,則例如如果這兩個附件試圖同時連接到同一移動計算設備,則這可能導致名稱沖突。為了避免這樣的沖突,希望為應用協議名稱提供集中化的名稱空間管理。在一些實施例中,中央名稱空間管理器(例如,移動計算設備的制造商)可以在應用協議的開發者請求時向應用協議指派名稱。在另一實施例中, 中央名稱空間管理器可以簡單地定義一命名協定,如果遵循它,則其應當防止名稱沖突,并且附件和/或應用的開發者可以通過遵循該協定來避免沖突。在一個實施例中,反向域名協定被用于管理應用協議名稱空間。傳統的域名從左到右提供低層域到頂層域。例如,在域名“help, example, com"中,項“com”是頂層域,項 “example”是較低層域,項“help”是最低層域。作為另一示例,域名“mac. apple, com”從左到右指定了最低層域“mac”、中間域“apple”和頂層域“com”。另一方面,反向域名將提供 “com. apple, mac^0反向域名協定可被用來指定由具體公司使用的應用協議。S卩,反向域名“com. companyl. accessoryl (com.公司 1.附件 1) ” 指定了 “accessoryl” 與公司(或其它開發者)“companyl”相關聯。因此,一般地,公司可以利用反向域名協定來實現協議,其中,反向域名的第一部分引用公司(“com. company”)并且與公司(或其它開發者)的因特網域名相關聯。反向域名的第二部分(“accessoryl”)指定具體協議。就附件和/或應用的不同開發者與不同因特網域名相關聯而言,反向域名協定允許開發者通過基于其因特網域名的反向來命名其協議從而將應用和/或協議和/或附件與其它的區分開。該協定允許開發者獨立的命名其協議而無需關注其它開發者的命名協定。此外,如果在使用相同名稱的兩個開發者之間存在沖突,則對誰擁有對應因特網域名的簡單檢查將確定哪個開發者具有使用特定反向域名的權利。在一些實施例中,反向域名可被附加為包括一類設備中的所有設備特有的全局標識符。例如,所有順序通過類型(serial pass through)的設備可以包括附加于反向域名的標識符。例如,這樣的反向域名可以具有如下格式“com. companyl. accessoryl. serialpass,,或"serialpass. com. companyl. accessoryl,,。利用這樣的協定,不同公司可以生產順序通過設備并且盡管制造商不同移動計算設備也可以識別這些設備。該反向域名協定僅僅是可以如何標識應用協議的一個示例。還可以使用任何類型的協定。因此,當附件與移動計算設備相連時,附件可以通過提供利用反向域名協定指派給每個所支持協議的名稱來向移動計算設備提供其所支持的應用協議的列表。附件可以支持單個應用協議或多個應用協議。基于接收到的信息,圖3的移動計算設備200可以利用諸如附件類型、附件標識符、應用協議名稱和/或通信端口標識符之類的其它查找表來填充端口映射325、附件信息表330和/或其它查找表。如下所述,應用320-322可以使用這些查找表來判斷兼容的附件是否可用,并且支持層315和/或協議管理器310可以使用查找表來路由通信而不必明白任何應用協議。例如,移動計算設備200可以與溫度計無線連接并且還利用線纜與相機連接。 (例如,在圖3中,附件302可以是溫度計并且端口 Z為無線端口,而附件300可以是相機并且端口 X是有線端口。)當連接上時,溫度計可以通過發送反向域名“com. temprus. thermometer 1"來標識其所支持的應用協議。該反向域名可利用附件通信協議被發送給用移動計算設備。在該移動計算設備中,該反向域名可作為應用協議名稱被存儲在查找表中 (例如,端口映射325和/或附件信息表330);在一些實施例中,反向域名可以結合溫度計的附件標識符和/或溫度計可被訪問的無線端口被存儲。類似地,當連接上時,再次地,相機可以通過利用附件通信協議發送如下反向域名“com. camerasrus. cameral”來標識其所支持的應用協議。該反向域名例如也可以結合相機的附件標識符和/或相機可被訪問的端口而被存儲在查找表中(例如,端口映射325和/或附件信息表330)。移動計算設備200可以運行利用應用協議“com. temprus. thermometer 1"與溫度計通信的溫度應用(例如,應用321)來進行溫度讀取。在運行期間,溫度應用例如通過搜索協議名“com. temprus. thermometerl”來訪問查找表以查看兼容的應用協議是否存在。 當溫度應用找到“com. temprus. thermometerl"時,則該應用找到了匹配并且可以開始利用 com. temprus. thermometerl應用協議與溫度計通信。例如通過利用附件通信協議的隧道傳輸命令來將通信路由通過相關聯端口。應用協議可以指定可與附件通信協議中所指定的不同的命令、分組信息、數據等。此外,提供應用和/或附件的公司(例如,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還可以將該包封裝在附件通信協議的命令內,例如,如上所述的TurmelToAcc命令。附件通信協議命令被發送給端口 414以供發送。 (雖然在圖4中僅示出了一個端口,但是將明白,移動計算設備400可以具有多個端口。)圖5A-5C圖示出根據本發明一些實施例的將應用協議消息封裝(包裝)在附件通信協議命令內的示例。圖5A示出了附件協議分組500的一個示例。如圖所示,分組500 包括頭部502和凈荷504。附件通信協議例如可以指示頭部的大小以及什么信息可被設置在頭部502中。在一些實施例中,頭部502可以包括命令或字節代碼,命令或字節代碼可以指示什么被包含在凈荷中和/或將利用凈荷中的數據做什么。例如,在所示實施例中,頭部 502包括TurmelToAcc命令的命令代碼。頭部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。更一般地,用于TurmelToAcc命令的附件協議分組可以包括打算遞送給附件的任何數據包并且不局限于運載單個附件協議分組。再次參考圖4,附件402例如在端口 422處接收附件協議TurmelToAcc命令分組。 端口 422可以將該TurmelToAcc命令分組路由到協議解釋器424,協議解釋器4M例如可以是運行在附件402的控制器或其它處理器上的軟件處理。協議解釋器似4可以讀取該 TunnelToAcc命令,提取包含在其中的包,并且將包轉發給運行在附件402的控制器或其它處理器上的另一處理426。處理似6可以包括能夠處理遵守應用協議的所接收信息的任何處理。例如,處理似6可以包括從所接收信息提取指令并生成用于附件特定硬件(例如,圖 2的附件特定硬件27 的對應控制信號的處理。從附件402到移動計算設備400的通信也被支持。例如,處理似6可以生成與應用協議中的消息相對應的數據包并且將該包提供給協議解釋器424以被發送給移動計算設備400。協議解釋器4 可以將該包封裝在附件通信協議的TurmelToAcc命令內部(例如,類似于圖5A-5C所示的示例)并且將命令發送給端口 422以用于發送給移動計算設備 400。在移動計算設備400處,端口 414接收該TurmelToAcc命令分組并將其轉發給協議管理器410。協議管理器410識別該TunnelToAcc命令,并且響應于該TunnelToAcc命令提取包,并將該包以及與該包相關聯的應用協議和附件的標識轉發給支持層408。在一些實施例中,協議管理器410可以基于遞送該TurmelToAcc命令的端口來確定這些標識符;因此,TunnelToAcc命令無需提供附件或應用協議的標識。支持層408使用附件和附件協議標識符來將包弓I導至會話406的輸入流。應用404 隨后可以從會話406的輸入流讀取到來數據,根據應用協議解釋該數據并且相對應地作出響應。因此,例如,應用404可以是溫度計應用并且附件402可以包括溫度計。應用404 可以利用適當的應用協議(例如,名為“com. temprus. thermometer 1 ”的協議)從附件402 請求溫度測量。該應用協議例如可以指定Get Temp (獲取溫度)命令,該命令由應用發送來從附件請求溫度數據。應用404可以創建例如包括Get Temp命令以及與該命令相關聯的任何優選項或變量(例如,是以華氏度還是以攝氏度返回溫度數據)的應用協議分組。應用 404可以創建具有如應用協議所定義的合適頭部和/或尾部的分組。應用404隨后可以將該分組作為應用協議消息傳遞到會話406的輸出流中。會話406可以指導協議管理器410 發送指定了應用協議是“com. temprus. thermometer 1 ”的附件協議隧道傳輸命令。協議管理器410可以將Get Temp命令封裝在附件通信協議的TurmelToAcc命令分組內,并且還可以查找應用協議名稱并確定該應用協議與端口 414相關聯。協議管理器410隨后可以將該 TunnelToAcc命令分組路由到端口 414以用于遞送給附件402。附件402可以在端口 422處接收該TurmelToAcc命令。協議解釋器4 可以提取 Get Temp命令分組并將其遞送給處理426,在此示例中,處理似6可以是控制溫度傳感器并從其接收數據的處理。因此,處理似6可以獲取將被返回給應用404的溫度數據。為了發送數據,處理似6例如可以生成遵守應用協議的%11(1 Temp (發送溫度)命令分組。該分組可以包括被請求的溫度數據(例如,利用在Get Temp命令中指定的溫標)。處理似6可以將knd Temp命令分組作為包提供給協議解釋器424,該knd Temp命令分組帶有其應當被發送給移動計算設備400的指示。協議解釋器4M可以將knd Temp命令分組封裝在附件通信協議的TunnelToHost命令內,并且端口 422可以將TunnelToHost命令傳輸給移動計算設備400的端口 414。端口 414可以將到來的TurmelToHost命令遞送給協議管理器 410,協議管理器410可以提取包(在此情況中,為knd Temp命令分組)并將該包以及從端口映射412確定的該包與“com. temprus. thermometer Γ ’協議相關聯的信息提供給支持層408。支持層408隨后可以將該包引導至會話406,具體地引導至會話406的輸入流。應用404可以從輸入流讀取該包,將其識別為遵守應用協議的knd Temp命令分組,并且提取溫度數據。在一些實施例中,附件可以使用應用協議以及附件通信協議的命令兩者來與附件通信。圖6圖示出了圖4的實施例中的附件通信協議的命令的路徑。除了經由會話406發送應用協議消息以外,應用404還可以通過向支持層406作出適當的API調用來調用附件協議命令,其可以指示協議管理器410經由端口 414向附件402發送附件協議命令(這里被表示為“移動計算設備ftOtCmdOut” )。類似地,從附件402接收的附件協議命令(在這里被表示為“移動計算設備ftOtCmdln” )可由協議管理器410接收并處理,并且協議管理器可以將該命令傳輸給支持層406。支持層406進而可以相應地遵照應用404行事。
22
在一些實施例中,應用協議可以包括由附件通信協議指定的專門語言和/或命令。例如,附件通信協議可以定義允許用戶通過移動計算設備來控制射頻調諧器附件的調諧器專門語言RFTimer。例如,RFTimer專門語言可以包括用于打開和關閉接收機、改變臺站等的命令。在一些實施例中,無線電調諧器應用可以在移動計算設備處運行,并且在移動計算設備處運行的無線電調諧器應用和無線電調諧器附件可以支持無線電調諧器應用協議,該應用協議允許無線電調諧器附件與無線電調諧器應用通信。RFTimer專門語言的一些或所有命令可被用于無線電調諧器應用協議,并且無線電調諧器應用協議也可以包括其他命令(例如,控制預設的用戶喜歡的臺站列表的命令)。因此,無線電調諧器應用可以使用RFTimer專門語言作為無線電調諧器應用協議的一部分來與無線電調諧器附件通信(例如,用于改變臺站),并且還可以將無線電調諧器應用協議的其它命令用于其它操作。移動計算設備還可以使用RFTimer專門語言作為附件通信協議的一部分,獨立于應用來與無線電調諧器附件通信。因此,無線電調諧器附件可以利用這兩種協議的任一種內的單個專門語言來向移動計算設備發送命令和/或消息。作為另一示例,RFTuner專門語言可以包括RFktFreq命令,該RFktFreq命令從移動計算設備(例如,在移動計算設備處運行的應用)被發送來將無線電調諧器附件調諧為該命令中包括的頻率。無線電調諧器應用可以創建具有如應用協議所定義的合適頭部和 /或尾部的分組,并且將RFktFreq命令和所需頻率包括在分組凈荷中。該分組隨后可被發送給協議管理器,協議管理器可以將該分組與附件通信協議的命令(例如,如上所述的 TurmelToAcc命令)捆包到附件協議分組中。附件協議分組隨后可被發送給附件。作為另一示例,RFktFreq命令可以在沒有無線電調諧器附件并且不被隧道傳輸的情況下使用。移動計算設備可以將使用附件通信協議、使用RFktFreq命令和關聯頻率的分組作為獨立分組發送給附件。作為又一示例,附件可以利用應用協議和/或附件通信協議中的任一者,使用 RFTuner專門語言來與移動計算設備通信。例如,當與移動計算設備處的具體應用通信時, 附件可以使用TurmelToHost命令來將RFTuner命令隧道傳輸到移動計算設備。作為另一示例,附件可以發送RFTimer命令而不隧道傳輸給移動計算設備。在另一實施例中,諸如揚聲器塢座之類的附件可以提供對移動計算設備上的媒體回放的遠程控制。遠程控制功能可以利用附件通信協議的命令來實現;例如,附件通信協議可以包括由附件發送來標識用戶調用的特定功能(例如,播放、暫停、下一首、前一首等)的 Buttor^tatus (按鈕狀態)命令。移動計算設備可以具有用于所存儲媒體的回放引擎,該回放引擎可以處理Buttor^tatus命令并且相應地作出響應。在移動計算設備上運行的應用可以提供對例如來自因特網數據流的其它媒體源的回放。希望用戶能夠通過以用戶控制所存儲媒體的回放相同的方式來操作附件從而遠程地控制流傳輸內容的回放。因此,可以定義“流傳輸控制”應用協議,其包括控制流傳輸內容的回放的命令或其它控制信號。用戶完全可以以控制所存儲媒體內容或流傳輸媒體內容中的任一者的回放相同的方式來操作附件。如果所存儲內容正被播放,則附件可以利用附件通信協議(例如,ButtonStatus命令) 將遠程控制信息傳輸給回放引擎。如果流傳輸內容正被播放,則附件可以利用流傳輸控制應用協議來將遠程控制信息傳輸給應用。在一個實施例中,附件通信協議的Buttor^tatus 命令可被結合到流傳輸控制應用協議中。
23
在又一實施例中,附件可以向移動計算設備發送位置信息。位置信息可以包括表示附件和/或移動計算設備的位置的任何信息并且可以利用各種方式來確定,例如利用全球定位系統(GPQ接收機和/或基于與附近移動電話網絡接入點有關的信息對位置進行三角測量。附件通信協議可以提供可由附件用來向移動計算設備發送位置信息的“位置”專門語言。然而,應用可使用不是以位置專門語言提供的位置信息。這樣的信息可由附件利用特定于附件的協議發送給該應用。因此,取決于位置信息將如何被使用,同一附件可以利用附件通信協議的位置專門語言或特定于附件的協議來將位置信息發送給移動計算設備。將理解,這里描述的通信路徑是說明性的,并且變更和修改是可以的。例如,路徑可以在附件和/或移動計算設備側包括更多或更少的層。在一些實施例中,每個移動計算設備隧道傳輸分組將包含一個附件協議消息,但這不是必須的。例如,如果接收者(根據情況可能為附件或應用)能夠從多個所接收數據包重構消息,則單個附件協議消息可以利用多個移動計算設備隧道傳輸分組被發送。類似地,如果接收者能夠將包解析為多個消息,則單個移動計算設備隧道傳輸分組可被允許包含多個附件協議消息。在描述圖4時,假定了應用404已經與兼容附件402建立了會話406。現在將描述使得應用能夠標識兼容附件(或反之)并建立會話的技術的示例。圖7是根據本發明實施例的用于標識附件和兼容應用的處理700的流程圖。處理 700可以開始于塊702。在塊704,移動計算設備可以判斷附件是否已被連接。例如,移動計算設備可以檢測附件是否物理地與連接器相耦合(例如,如圖IA所示)或者附件是否無線地與移動計算設備相耦合(例如,如圖IB所示)。如上面提到的,可以認為每當移動計算設備與附件之間的有線或無線通信信道開通時附件就被連接上,并且塊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來選擇適當的應用通信協議。在一些實施例中,移動計算設備可以通過因特網將附件標識信息發送給應用商店和/或服務器以標識與附件兼容的應用通信協議。在一些實施例中,應用商店和/或服務器可以發送詳述了與附件兼容的應用通信協議的文件。在一些實施例中,附件可以不將應用協議信息發送給移動計算設備,而是附件可以發送隨后由移動計算使設備使用來選擇合適的應用通信協議的附件標識 fn息ο再次參考圖7的塊712,在所支持應用協議表(例如,圖8的表810)被提供的實施例中,移動計算設備可以通過利用新連接附件的協議名稱訪問所支持協議表來判斷兼容應用是否可用。例如,如圖8所示,如果新連接附件提供protocolMringlc}作為其應用協議標識符,則處理700的塊712可以包括在所支持協議表810中查找protocolStringlc}, 并且由此判定應用“App8”與該應用協議相關聯。在此情況中,塊712將得出應用可用的判定。如圖8進一步示出的,如果新連接附件提供protocolMringk}作為其應用協議,則在表810中找不到匹配,并且處理700的塊712將得出沒有兼容應用可用的判定。如果沒有兼容應用可用,則處理700可以在塊714中輔助定位并獲得兼容應用。例如,移動計算設備可以將用戶指引向應用商店(例如,由蘋果公司提供的iTunes 商店)或用于購買和/或下載應用的其它資源。各種類型的輔助可被提供。例如,在一些實施例中, 在塊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,應用可以與附件通信。在一些實施例中,塊7 可以包括創建會話并經由該會話發送和/或接收應用協議命令,例如如上所述的。塊7M還可以包括利用附件通信協議來發送和/或接收命令以及其它信息。因此,相同的應用和附件可以使用該附件通信協議所支持的功能并且還可以利用可能與或可能不與附件通信協議所支持的功能相重疊的應用協議來交換其它信息、控制信號、數據等。通信可以不限期地持續,例如直到附件從移動計算使設備斷開連接和/或應用存在為止。此時,處理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以尋找兼容附件并開始新的會話。將理解,這里描述的附件通信協議是說明性的并且變更和修改是可以的。順序地被描述的動作可以并行地被運行,動作的順序可被修改,和/或動作可被添加、省略或組
I=I O在一些實施例中,移動計算設備可以支持到多個附件的同時連接和/或多個應用的同時運行。因此,單個應用可以同時與多個附件交互或者單個附件可以同時與多個應用交互。例如,圖11圖示出了根據本發明一些實施例的同時與附件A 1106和附件B 1108 交互的移動計算設備1102上的應用1100。附件A 1106和附件B 1108可以是不同類型的附件,或者他們可以是類似的或者甚至相同的附件。在此示例中,每個附件連接到不同端口 ;因此,附件A 1106連接到端口 1110,并且附件B 1108連接到端口 1112。應用1110已創建了兩個會話1114、1116。會話1112與附件1104相關聯并且使用應用協議Al,而會話 1114與附件A 1106相關聯并且使用應用協議Bi。會話1112和1114彼此獨立;任一者可在不影響另一者的情況下被發起、使用和/或終止。在一些實施例中,會話可以是特定于協議的。端口 1110可以使用附件通信協議來為遵守協議Al的消息提供“隧道”以在移動計算設備1102與附件1106之間傳遞,并且端口 1112可以使用(相同)附件通信協議來為遵守協議Bl的消息提供分離的隧道以在移動計算設備1102與附件1108之間傳遞。將明白,根據需要,應用協議Al和Bl可以是不同協議或相同協議。此外,雖然示出了兩個附件和兩個會話,但是只要移動計算設備上有足夠的硬件和/或軟件資源(例如,端口和/或會話) 可用,就可按這里描述的方式將任意數目的附件和會話與特定應用相連。圖12圖示出根據本發明一些實施例的在移動計算設備1204上運行并且同時與附件A 1206和附件B 1208交互的兩個應用,S卩,應用11200和應用21202。附件A 1206和附件B 1208可以是不同類型的附件,或者它們可以是類似的或者甚至相同的附件。在此示例中,每個附件被連接在不同端口上;因此,附件A 1206連接到端口 1210,并且附件B 1208 連接到端口 1212。應用11200已創建了與附件A 1206和應用協議Al相關聯的會話1214, 并且應用21202已創建了與附件B 1208和應用協議Bl相關聯的會話1216。會話1212和會話1214彼此獨立;任一者可在不影響另一者的情況下被發起、使用和/或終止。端口 1210 可以使用附件通信協議來為遵守應用協議Al的消息提供“隧道”以在移動計算設備1204與附件1106之間傳遞,并且端口 1212可以使用(相同)附件通信協議來為遵守應用協議Bl 的消息提供分離的隧道以在移動計算設備1204與附件1208之間傳遞。與如11 一樣,將明白,根據需要,應用協議Al和Bl可以是不同協議或相同協議。此外,雖然示出了兩個附件、 兩個應用和兩個會話,但是只要移動計算設備上有足夠的硬件和/或軟件資源(例如,端口和/或會話)可用,就可按這里描述的方式同時支持任意數目的附件、會話和/或應用。圖13圖示出根據本發明一些實施例的在移動計算設備1304上運行并且同時與附件1306交互的兩個應用,S卩,應用11300和應用21302。在此示例中,附件1306支持兩個不同應用協議(Al和A2)。協議Al和A2可以僅名稱不同,或者它們可以是兩個不同的、可能不兼容的協議。附件1306在與協議Al相關聯的端口 1310上被連接到移動計算設備1304, 并且也在與協議A2相關聯的端口 1312上被連接到移動計算設備1304。應用11300已創建了與附件1306和應用協議Al相關聯的會話1314,并且因此可以經由端口 1310與附件 1306通信。類似地,應用21302已創建了與附件1306和應用協議A2相關聯的會話1316, 并且因此可以經由端口 1312與附件1306通信。會話1312和會話1314彼此獨立;任一者可在不影響另一者的情況下被發起、使用和/或終止。端口 1310可以使用附件通信協議來為遵守應用協議Al的消息提供隧道以在移動計算設備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。在本發明的一些實施例中,當附件與移動計算設備連接時,附件可以發送包含有指定優選應用的元數據的附件信息。該信息例如可以在標識階段、認證階段或能力階段期間被發送。在一些實施例中,如果優選應用未在應用上運行并且被存儲在移動計算設備處的存儲器中,則應用可被自動啟動。在一些實施例中,移動計算設備可以向用戶提供詢問用戶他們是否想要啟動優選應用的通知,并且如果用戶作出肯定響應則啟動該應用。在本發明的一些實施例中,如果優選應用(即,附件優選的應用)中的任何一個被加載到移動計算設備上,則移動計算設備可以在用戶界面的主屏幕畫面上高亮與優選應用
32中的一個或每個優選應用有關的圖標。因此,用戶可以更容易地定位用于附件的兼容應用。 例如,當高亮應用圖標時,移動計算設備可以改變圖標的顏色或陰影、使圖標擺動或振動、 放大圖標、改變圖標的形狀、改變圖標上的圖片等。圖標的任何方面都可被改變。在本發明的其它實施例中,如果優選應用未被存儲或加載到移動計算設備上,則移動計算設備可被引導至諸如應用商店之類的網絡位置以下載優選應用。在一些實施例中,元數據可被保存,并且可以在稍后的時間從網絡位置下載優選應用。例如,可在用戶將 web瀏覽器或應用商店引導至可下載優選應用的指定網絡位置時下載應用。作為另一示例, 可在用戶具有用于下載優選應用的合適的無線連通性水平時下載應用。在一些實施例中, 可在移動計算設備與主機計算機相耦合時加載優選應用。此外,在一些實施例中,從附件發送給移動計算設備的元數據還可以包括指定在優選應用未與加載到移動計算設備上的應用相匹配時如何做出反應的信息。該指示可以是命令或消息的一部分。例如,附件可以指定優選應用必須與移動計算設備處的應用匹配并且該優選應用必須被下載來與附件交互。作為另一示例,附件可以指定優選應用,但是將利用兼容應用協議來與任何應用互操作。在此情況中,移動計算設備可以下載優選應用,但不是必須的。此外,在一些情況中,移動計算設備可以從用戶請求關于是否下載優選應用或使用兼容應用的反饋。作為又一示例,附件可以指定移動計算設備從不從網絡位置或應用商店搜索或下載應用。此外,在一些情形中,附件可以指定從不詢問用戶是否下載應用。在此場合中,附件可以在不與移動計算設備處的應用交互的情況下操作。在本發明的又一實施例中,附件可與移動計算設備相耦合并且第一應用可以在移動計算設備處運行。第一應用可與應用協議相關聯,該應用協議可以與或可以不與附件兼容,并且該應用可以與或可以不與附件通信。附件可以向移動計算設備發送指定了要運行的第二應用的命令。者可以響應于與用戶的交互被啟動;例如,根據來自用戶的對附件處的按鈕的按壓被啟動。移動計算設備隨后可以響應于接收到該命令來運行第二應用。在一些實施例中,第一應用可以與第二應用并行地運行。在一些實施例中,第一應用可被關閉并且第二應用被加載。在一些實施例中,命令可以通過序列號和/或名稱來指示應用。在一些實施例中,命令還可以指定可下載應用并且隨后被執行的網絡位置。此外,在一些實施例中,當沒有應用在移動計算設備上運行或者當操作系統在移動計算設備上運行時附件可以請求第二應用運行。雖然已相對于具體實施例描述了本發明,然而本領域技術人員將認識到可以有多種修改。例如,在這里描述的某些實施例中,在任何給定的時間端口最多與一個應用協議相關聯。在其它實施例中,利用不同應用協議的通信可被多路復用在同一端口上,和/或利用相同應用協議與不同應用的通信可被多路復用在同一端口上。在這些實施例中,用于隧道傳輸附件協議消息(在任一方向上)的移動計算設備協議命令可以包括會話和/或應用協議標識符以輔助對附件協議消息進行合適處理。在一個這樣的實施例中,當應用建立與特定附件和應用協議相關聯的會話時,可利用附件通信協議的命令將該會話的標識符提供給附件。與該會話相關聯的后續移動計算設備協議分組(例如,隧道傳輸命令分組)可以包括該會話標識符。因此,即使多個會話同時進行并且即使與多個會話有關的通信被多路復用到同一端口上,附件也可以將其可以發送或接收的任何附件協議消息與特定會話相關聯。即使針對多個會話的通信被多路復用到單個端口上,附件然后也可以為多個會話維護各自的狀態信息。已描述了提供應用通信協議如何被用于應用和附件之間的通信的示例的本發明的實施例。在許多情況中,移動計算設備對于應用通信協議是不知的。一些實施例描述了附件和/或應用用來傳輸指定了應用通信協議的信息的方案。可以使用使得附件和/或應用知道使用哪個應用協議的各種其它技術。例如,移動計算設備可以包括具有所有的已知應用協議的表。附件和/或應用可以通過指向表的條目來指定應用協議。作為另一示例, 應用可以從使用任意數目的通信協議的附件請求應用協議信息。作為另一示例,應用可以向附件指定該應用支持的任何協議并且附件可以選擇要使用的應用協議。作為又一示例, 可以使用位掩碼,其中,預定的不同位掩碼可用來表示各種應用協議。還可以使用用于標識應用協議的各種其它手段。還公開了各種其它實施例。例如,公開了一種在附件處操作的、附件設備與在移動計算設備上運行的應用之間的通信方法。該方法可以包括利用附件通信協議向所述移動設備傳輸指定了至少一個應用通信協議的信息;和/或利用所述附件通信協議與在所述移動設備處運行的應用通信。在一些實施例中,該方法還可以包括利用附件通信協議與在移動計算設備處運行的操作系統通信。在一些實施例中,可在附件通信協議分組內隧道傳輸應用通信協議分組。在一些實施例中,該方法還可以包括從運行在所述移動通信設備上的應用接收應用通信協議命令并且響應于其改變所述附件的狀態。在一些實施例中,該方法還可以包括響應于來自運行在所述移動計算設備上的應用的命令向運行在所述移動計算設備上的應用發送數據,其中所述數據可以利用所述應用通信協議被發送并且所述命令可以利用所述附件通信協議被接收。在一些實施例中,指定了至少一個應用通信協議的信息可以按反向域名協定被提供。 在一些實施例中,該方法還可以包括利用所述附件通信協議通過所述附件來控制所述移動計算設備的功能。公開了一種附件設備,該附件設備可以包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內并且被配置為與移動計算設備交換命令和數據,所述通信接口至少具有一個端口 ;和/或控制邏輯,該控制邏輯被設置在所述殼體內并且可通信地與所述通信接口相耦合。所述控制邏輯可被配置為利用附件通信協議通過所述通信接口與運行在所述移動計算設備上的操作系統通信。所述控制邏輯可被配置為利用附件通信協議通過所述通信接口與運行在所述移動計算設備上的應用通信。在一些實施例中,該控制邏輯還可被配置為利用附件通信協議傳輸指定了應用通信協議的信息。在一些實施例中,該控制邏輯還可被配置為利用標準通信協議而非附件通信協議來傳輸指定了應用通信協議的信息。在一些實施例中,可以利用反向域名協定來將應用通信協議信息傳輸給移動計算設備。在一些實施例中,通信接口可以包括無線通信接—種用于在附件設備與運行在移動計算設備上的應用之間進行通信的方法,該方法在附件設備處操作。該方法可以包括利用附件通信協議向移動計算設備傳輸附件信息; 從移動計算設備接收會話標識符、應用協議標識符或舉行連接命令中的至少一者;和/或此后利用應用通信協議與在移動計算設備處運行的應用通信。在一些實施例中,應用通信協議可以是與被傳輸給移動計算設備的應用協議串相關聯的協議。在一些實施例中,附件信息可以包括應用協議串、與應用協議串相對應的應用協議索引、優選應用信息或附件通信協議信息中的至少一者。在一些實施例中,優選應用信息指定這樣的應用,該應用支持利用與被傳輸給移動計算設備的應用協議串相關聯的應用通信協議的通信。在一些實施例中,該通信可以包括利用附件控制移動計算設備的功能。在一些實施例中,應用通信協議串可以為反向域名協定的方式。公開了另一種附件設備。該附件可以包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,和/或被配置為可通信地與移動計算設備相耦合;附件硬件;和/ 或控制邏輯,該控制邏輯被設置在所述殼體內并且可通信地與所述通信接口和附件特定硬件相耦合。該控制邏輯可被配置為利用附件通信協議通過所述通信接口向移動計算設備傳輸應用通信協議信息。控制邏輯可被配置為通過該通信接口與運行在移動計算設備處的應用建立通信會話,其中該通信會話使用應用通信協議來在附件和運行在移動計算設備處的應用之間進行通信。控制邏輯可被配置為利用附件通信協議從運行在移動計算設備上的應用接收數據。控制邏輯可被配置為響應于從運行在移動計算設備上的應用接收的數據來控制附件硬件的操作。在一些實施例中,通信接口可以包括無線通信接口。在一些實施例中,控制邏輯還可被配置為利用應用通信協議從附件硬件接收硬件數據,和/或向在移動計算設備處運行的應用發送硬件數據。在一些實施例中,附件硬件可以包括并且硬件數據可以包括利用傳感器收集的數據。在一些實施例中,附件硬件可以包括與電子設備的硬件接口并且硬件數據可以包括通過該硬件接口從電子設備接收的數據。在一些實施例中,附件硬件可以包括與電子設備的硬件接口,并且來自在移動計算設備處運行的應用的數據包括用于利用該硬件接口控制電子設備的數據。在一些實施例中,附件硬件可以包括顯示裝置,并且來自在移動計算設備處運行的應用的數據可以包括可顯示信息。公開了用于在附件設備與在移動設備上運行的應用之間進行通信的另一方法。該方法可以在移動設備上操作。該方法可以包括標識附件設備,其中該標識使用附件通信協議;從附件設備接收指定了應用通信協議的信息,其中該信息利用附件通信協議被接收; 在移動計算設備處運行應用;和/或利用應用通信協議從應用與附件設備通信。在一些實施例中,該方法還可以包括判斷該應用協議是否被列出在所述移動計算設備處的協議表中,其中所述協議表可以包括所述移動計算設備處的應用所支持的協議。在一些實施例中,該方法還可以包括在所述協議表不包括該應用協議的情況中, 下載支持該應用協議的應用。在一些實施例中,來自所述附件設備的指定了應用通信協議的信息利用反向域名協定來指定一個應用通信協議。在一些實施例中,來自所述附件設備的指定了應用通信協議的信息還可以包括與該應用通信協議相關聯的標識符。在一些實施例中,利用應用通信協議與附件設備通信還可以包括將應用通信協議分組封裝在附件通信協議分組內。在一些實施例中,應用通信協議可以包括被包括在附件通信協議內的命令。還公開了一種移動計算設備,該移動計算設備可以包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內并且/或者被配置為與附件交換命令和數據,該通信接口具有至少一個端口 ;存儲器,該存儲器被設置在所述殼體內;和/或控制邏輯,該控制邏輯被設置在所述殼體內并且/或者可通信地與所述存儲器和所述通信接口相耦合。該控制邏輯可被配置為利用附件通信協議通過通信接口接收來自附件的指定應用通信協議的指示。該控制邏輯還可被配置為運行存儲在存儲器中的應用。該控制邏輯還可被配置為利用應用通信協議建立附件與應用之間的通信。在一些實施例中,該至少一個端口可以為有線端口或無線端口。在一些實施例中,控制邏輯還可被配置為判斷由應用指定的應用通信協議是否可與存儲在存儲器中的應用通信協議相關聯。在一些實施例中,控制邏輯還可被配置為利用附件通信協議將應用通信協議數據隧道傳輸給附件。在一些實施例中,控制邏輯還可被配置為將應用通信協議分組與附件通信協議分組封裝在一起并且將附件通信協議分組提供給端口。公開了另一種移動計算設備,該移動計算設備可以包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并且/或者被配置為與附件交換命令和數據;存儲器,該存儲器被設置在所述殼體內;和/或控制邏輯,該控制邏輯被設置在所述殼體內并且 /或者可通信地與所述存儲器和所述通信接口相耦合。所述控制邏輯可被配置為通過該通信接口從附件設備接收應用通信協議信息,其中該應用通信協議信息可以包括附件所支持的應用通信協議的標識,和/或其中該應用通信協議信息可利用附件通信協議從該附件被接收。該控制邏輯可被配置為通過將應用通信協議分組封裝在附件通信協議分組內來創建經封裝分組。該控制邏輯可被配置為通經由該通信接口將經封裝分組發送給附件。在一些實施例中,該通信接口可以是無線通信接口。在一些實施例中,移動計算設備可以包括存儲在存儲器中的協議表,其中該協議表可以包括安裝在移動計算設備上的應用所支持的應用協議的列表。公開了一種可包含程序指令的計算機可讀介質,當程序指令被移動計算設備的處理器運行時使得該處理器執行方法。該方法可以包括利用附件通信協議從附件設備接收應用通信協議信息,利用應用通信協議從附件接收數據,和/或操縱從附件接收的數據。在一些實施例中,該方法還可以包括在移動計算設備的顯示裝置上顯示被操縱數據的至少一部分。在一些實施例中,該方法還可以包括通過利用應用通信協議向附件發送命令來控制附件的功能。另一種方法被提供用于在附件設備與安裝在移動設備上的應用之間建立通信會話。該方法可以在移動設備上操縱并且可以包括將所支持應用協議的列表與所收集應用協議的列表相比較;當在所支持應用協議列表中的應用協議與所收集應用協議列表中的應用協議之間找到匹配時,將指定了匹配應用協議的信息傳輸給附件;和/或當未在所支持應用協議列表中的應用協議與所收集應用協議列表中的應用協議之間找到匹配時,將移動設備的用戶引導至應用商店,在該應用商店中,與所收集應用協議列表內的至少一個應用協議相關聯的應用可用于被下載。在一些實施例中,所支持應用協議的列表可以包括由應用支持的一個或多個通信協議,并且/或者所收集應用協議的列表可以包括從與移動計算設備相耦合的一個或多個附件接收的一個或多個通信協議。在一些實施例中,當在所支持應用協議列表中的應用協議與所收集應用協議列表中的應用協議之間找到匹配時,請求與附件的通信會話。在一些實施例中,在通信時,指定了匹配應用協議的信息可以包括會話標識符。在一些實施例中,當在所支持應用協議列表中的應用協議與所收集應用協議列表中的應用協議之間找到匹配時,利用該匹配應用協議來與附件通信。在一些實施例中,應用商店可以是基于因特網的應用商店。提供了一種包含程序指令的計算機可讀介質,當程序指令被移動計算設備的處理器運行時,使得該處理器執行方法。該方法可以包括判斷所支持協議列表中的所支持應用協議標識符是否與所收集協議列表中的應用協議標識符相匹配;并且/或者響應于在所支持應用協議與所收集應用協議列表中的應用協議之間找到匹配,執行子方法。該子方法包括在移動計算設備和與該移動計算設備相耦合的附件之間發起通信會話;向附件傳輸指定了所支持應用協議的信息;并且/或者利用所支持應用協議從移動計算設備與附件通信。在一些實施例中,所收集協議列表可以包括表示與附件兼容的應用協議的一個或多個通信協議標識符,和/或所支持協議列表可以包括表示與安裝在移動計算設備處的應用兼容的應用協議的一個或多個通信協議標識符。在一些實施例中,所支持應用協議可以不同于附件通信協議。在一些實施例中,程序指令還可以使處理器響應于未在所支持應用協議與所收集應用協議列表中的應用協議之間找到匹配而下載支持與所收集協議列表中的應用協議相匹配的協議的應用。提供了一種在移動計算設備處操作的另一方法,該方法可以包括從附件設備接收應用協議標識符,其中所接收的應用協議標識符可以包括反向域名格式的數據串并且可與應用通信協議相關聯;并且/或者判斷所接收的應用協議標識符是否與存儲在所述移動計算設備處的存儲器中的協議表內所列出的應用協議標識符相匹配,此后,利用所述應用通信協議與所述附件通信。在一些實施例中,所述協議表可以包括與可在所述移動計算設備處運行的應用相關聯的一個或多個應用協議標識符。在一些實施例中,該方法還可以包括當所接收的應用協議標識符與所述協議表中的應用協議標識符相匹配時,運行與所述協議表中的應用協議標識符相關聯的應用。在一些實施例中,該方法還可以包括利用與所接收的應用協議標識符相匹配的關聯應用協議標識符來下載應用。還公開了一種移動計算設備,該移動計算設備包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并且/或者被配置為與附件交換命令和數據;存儲器,該存儲器被設置在所述殼體內,所述存儲器維護所支持應用協議列表;和/或控制邏輯,該控制邏輯被設置在所述殼體內并且/或者可通信地與所述存儲器和所述通信接口相耦合。在一些實施例中,該控制邏輯被配置為通過通信接口從附件接收標識出了所述附件所支持的應用通信協議的信息。在一些實施例中,該控制邏輯可被配置為判斷該附件支持的應用通信協議是否與在所支持應用協議列表中標識出的協議相對應,其中所支持應用協議列表可以包括安裝在移動計算設備上的應用所支持的一個或多個協議。在一些實施例中,控制邏輯可被配置為當判定附件支持的應用協議與在所支持應用協議列表中標識出的協議之間相對應時,利用移動計算設備協議向附件傳輸指定了匹配應用協議的信息。在一些實施例中,控制邏輯可被配置為利用該匹配應用協議與附件通信。還提供了另一方法,該方法可以包括利用移動計算設備協議從附件接收應用協議信息,其中該應用協議信息標識出與附件兼容的至少一個應用協議。該方法還可以包括 判斷該應用協議是否與在所支持協議列表中列出的協議相匹配,其中所支持協議列表可以包括至少由安裝在移動設備上的應用支持的一個或多個通信協議,和/或其中在所支持協議列表中列出的每個協議可以與應用相關聯。并且當一應用協議與所支持協議列表中的協議相匹配時,該方法還可以包括運行與所支持列表中的匹配協議相關聯的應用。在一些實施例中,當沒有應用協議與所支持協議列表中的協議相匹配時,從因特網下載與所支持協議列表中的協議相關聯的應用。
提供了另一種方法,該方法可以包括在移動計算設備處從附件接收信息,其中該信息可以包括應用協議的標識;將該應用協議與存儲在移動計算設備的存儲器中的所支持協議表中列出的協議相比較,其中所支持協議表可以包括與應用相關聯的至少一個應用協議;并且/或者當該應用協議與所支持協議表中列出的協議匹配時,在移動計算設備處運行與該應用協議相關聯的應用。在一些實施例中,該信息可以包括支持該應用協議的優選應用的標識,并且/或者當該應用協議不與所支持協議表中列出的協議相匹配時,下載該優選應用。在一些實施例中,標識應用協議的信息里有反向域名格式來標識該應用協議。在一些實施例中,該方法還可以包括里有應用協議與附件通信。在一些實施例中,標識應用協議的信息可以根據移動計算設備協議被格式化。提供了一種移動計算設備,該移動計算設備包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并且/或者被配置為與附件交換命令和數據;存儲器,該存儲器被設置在所述殼體內,所述存儲器包括列出了與應用兼容的協議的所支持應用協議列表,其中所支持應用協議包括安裝在所述移動計算設備上的應用所支持的應用協議;和/ 或控制邏輯,該控制邏輯被設置在所述殼體內并且/或者可通信地與所述存儲器和所述通信接口相耦合。該控制邏輯被配置為從附件接收標識出了所述附件所支持的應用協議的消息;判斷該應用協議是否與存儲在所支持應用協議列表內的所支持應用協議相匹配;并且/或者當發現相匹配時,運行與匹配該應用協議的所支持附件相關聯的應用。在一些實施例中,從附件接收的消息可以標識出能夠從其找到支持該應用協議的應用的基于因特網的地址。在一些實施例中,該方法還可以包括從所述基于因特網的地址下載所述應用。在一些實施例中,該方法還可以包括將該應用安裝在所述移動計算設備中并且運行該應用。公開了一種移動通信設備,該設備包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并且/或者被配置為與附件交換命令和數據,該通信接口具有第一通信端口和第二通信端口 ;存儲器,該存儲器被設置在所述殼體內;和/或控制邏輯,該控制邏輯被設置在所述殼體內并且可通信地與所述存儲器和所述通信接口相耦合。該控制邏輯可被配置為利用第一應用通信協議通過所述第一通信端口與第一附件通信;以及/或者利用第二應用通信協議通過所述第二通信端口與第二附件通信。在一些實施例中,所述第一通信端口或所述第二通信端口中的至少一者可以包括無線通信端口。在一些實施例中,所述第一應用通信協議和所述第二應用通信協議可以不同。在一些實施例中,所述控制邏輯還可被配置為利用附件通信協議通過所述第一通信端口與所述第一附件通信并且通過所述第二附件通信端口與所述第二附件通信。在一些實施例中,所述控制邏輯還可被配置為通過所述第一端口建立用于與所述第一附件通信的第一通信會話。在一些實施例中, 所述控制邏輯還可被配置為通過所述第一端口建立用于與所述第二附件通信的第二通信會話。在一些實施例中,所述通信接口可以包括第三通信端口,并且所述控制邏輯還可被配置為利用第三應用通信協議通過所述第三通信端口與第三附件通信。一種包含程序指令的計算機可讀介質,所述程序指令在被移動計算設備的處理器運行時使得所述處理器執行方法。該方法包括請求用于與第一附件通信的第一通信會話; 接收所述第一通信會話的會話標識符;利用第一應用協議通過所述第一通信會話與所述第一附件通信;請求用于與第二附件通信的第二通信會話;接收所述第二通信會話的會話標識符;以及/或者利用第二應用協議通過所述第二通信會話與所述第二附件通信。在一些實施例中,所述第一應用協議和所述第二應用協議不同。在一些實施例中,所述第一應用協議和所述第二應用協議相同。在一些實施例中,所述程序指令還使得所述處理器判斷所述第一附件或所述第二附件是否與所述移動計算設備可通信地相耦合。一種移動通信設備包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并且/或者被配置為與第一附件和第二附件交換命令和數據,該通信接口具有第一通信端口和第二通信端口 ;存儲器,該存儲器被設置在所述殼體內;和/或控制邏輯,該控制邏輯被設置在所述殼體內并且/或者可通信地與所述存儲器和所述通信接口相耦合。 該控制邏輯被配置為在第一通信端口與由該控制邏輯運行的第一應用之間建立第一通信會話;利用第一應用協議通過第一通信會話與第一附件通信;在第二通信端口與由控制邏輯運行的第二應用之間建立第二通信會話;以及/或者利用第二應用協議通過第二通信會話與第二附件通信。在一些實施例中,控制邏輯還可被配置為利用附件通信協議為第一應用通信協議消息提供隧道。在一些實施例中,附件通信協議可以不同于第一應用通信協議。 在一些實施例中,控制邏輯還可被配置為利用附件通信協議為第二應用通信協議消息提供隧道。在一些實施例中,附件通信協議可以不同于第二應用通信協議。提供了在移動計算設備處運行的另一方法。該方法可以包括接收附件可以在通信端口處與移動計算設備可通信地相耦合的指示;判斷附件支持利用附件協議和應用協議兩者與移動計算設備的通信;通過通信端口在附件與在移動計算設備處運行的應用之間建立通信會話;和/或利用該通信會話從應用向附件發送消息,其中消息是應用協議消息。在一些實施例中,附件協議和應用協議不同。在一些實施例中,該方法可以包括從附件接收對附件支持該應用協議的指示。在一些實施例中,該方法還可以包括將應用協議消息封裝在附件協議消息內。提供了一種用于在移動計算設備上運行的應用與附件之間建立通信會話的方法。 該方法可在移動計算設備處運行并且可以包括從應用接收對與附件有關的信息的請求; 向應用提供附件信息,其中附件信息可以包括可與附件兼容的至少一個應用通信協議的標識符;接收對在所述附件與所述應用之間利用所述應用通信協議進行通信的通信會話的請求;從所述應用接收消息,其中該消息可根據所述應用通信協議被格式化;將該消息與附件通信協議包裝材料包裝在一起;和/或將所述消息傳輸給所述附件,其中所述消息可根據與所述應用通信協議不同的附件通信協議被傳輸。在一些實施例中,所述附件通信協議包裝材料可包括隧道傳輸命令。在一些實施例中,至少一個應用通信協議的標識符可以包括以反向域名格式提供的標識符。在一些實施例中,該方法還可以包括從所述附件接收消息,其中該消息可根據附件通信協議被格式化;從所述消息剝除所述附件通信協議包裝材料;以及/或者將所述消息發送給所述應用,其中該消息可根據所述應用通信協議被傳輸。 在一些實施例中,該方法還可以包括監視通信接口處的附件連接;和/或當附件與所述通信接口可通信地相耦合時,接收包括附件能力的能力消息,其中所述消息包括與所述附件兼容的至少一個應用通信協議的標識符。再一些實施例中,所述能力消息可根據所述附件通信協議被格式化。一種移動計算設備可包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并且/或者被配置為利用附件通信協議與附件交換命令和數據;存儲器,該存儲器被設置在所述殼體內;和/或控制邏輯,該控制邏輯被設置在所述殼體內并且/或者可通信地與所述存儲器和所述通信接口相耦合,所述控制邏輯被配置為運行應用以及作為后臺處理的附件管理器。作為附件管理器運行的所述控制邏輯被配置為監視所述通信接口處的與所述通信接口相耦合的附件;當附件與通信接口相耦合時,利用所述附件通信協議從所述附件接收包括兼容應用協議的附件能力信息;從所述附件接收與附件通信協議包裝材料包裝在一起的按應用通信協議格式化的消息;從所述消息剝除所述附件通信協議包裝材料;以及/或者將消息傳輸給所述應用。在一些實施例中,所述附件能力是利用所述附件通信協議接收的。在一些實施例中,作為附件管理器運行的所述控制邏輯還可被配置為建立輸入數據流以使得能從該輸入數據流讀取數據。在一些實施例中,作為附件管理器運行的所述控制邏輯利用所述輸入數據流將從所述附件接收的消息傳輸給所述應用。在一些實施例中,作為附件管理器運行的所述控制邏輯還可被配置為從所述應用接收按應用通信協議格式化的消息;將所述附件通信協議消息與附件通信協議包裝材料包裝在一起;以及/ 或者將所述消息傳輸給所述附件。在一些實施例中,作為附件管理器運行的所述控制邏輯還可被配置為建立輸出數據流以使得數據能由應用寫入所述輸出數據流并發送給所述附件。在一些實施例中,作為附件管理器運行的所述控制邏輯將從所述輸出數據流接收的消息傳輸給所述附件。提供了另一方法。該方法可以包括在移動計算設備的附件接口出監視對附件已與附件接口可通信地相耦合的指示;當附件可與附件接口可通信地相耦合時,從附件接收能力信息,其中該能力信息可以利用附件通信協議來接收,和/或能力信息可以包括指示與附件兼容的一個或多個應用通信協議的信息;為在移動計算設備處運行的應用建立輸入數據流,其中從附件接收的被包裝在附件通信協議包裝材料中的應用消息可以從附件通信協議包裝材料被剝離并且利用輸入數據流被寫入應用;并且/或者為應用建立輸出數據流,其中從應用寫入輸出數據流的應用消息可被包裝在附件通信協議包裝材料中并且通過附件接口被發送給附件。在一些實施例中,附件接口可以包括無線通信接口。在一些實施例中,指示一個或多個應用通信協議的信息可以利用反向域名格式來提供。還提供了一種在移動計算設備上運行的方法。該方法可以包括從在移動計算設備上運行的應用接收對利用應用協議在移動計算設備與外部附件之間進行通信會話的請求;判斷該應用協議是否可被附件支持;當該應用協議可由附件支持時,向應用提供輸入流和輸出流以用于利用該應用協議與附件通信;通過輸出流從應用接收消息,其中該消息可以根據該應用協議被格式化;將該消息包裝在附件協議消息內;并且/或者將該消息發送給附件。在一些實施例中,該判斷還包括在查找表中查找該應用協議。在一些實施例中, 該方法可以包括從附件接收消息,其中該消息可以是被包裝在附件協議消息內的應用協議消息;從應用協議消息解除附件協議包裝材料;并且/或者將應用協議消息寫入應用的輸入流。提供了在移動計算設備上運行的另一方法。該方法包括在第一應用與第一附件之間舉行第一通信會話,其中該通信會話利用第一通信協議在第一應用與第一附件之間提供通信;從第一應用接收第一消息;將包裝在附件協議包裝材料內的第一消息發送給附件;在第二應用與第一附件之間舉行第二通信會話,其中該通信會話利用第二通信協議在第一應用與第一附件之間提供通信,其中該第一和第二應用協議不同;并且/或者從第二
40應用接收第二消息并且將包裝在附件協議包裝材料內的第二消息發送給附件。提供了一種包含程序指令的計算機可讀介質,當程序指令由移動計算設備的處理器運行時使得處理器執行方法。該方法可以包括從附件管理器請求附件信息,其中該附件管理器可以是在移動計算設備處運行的后臺處理并且在運行在移動計算設備中的應用和與移動計算設備可通信地相耦合的附件之間提供通信連接;當附件與所述移動計算設備可通信地相耦合時,從所述附件管理器接收附件標識符以及指定了與所述附件兼容的至少一個應用通信協議的一個或多個協議標識符;判斷所述應用與所述至少一個應用協議是否可兼容;當所述應用可兼容時,舉行會話以利用所述應用通信協議通過所述附件管理器來與所述附件通信;以及/或者利用所述附件通信協議與所述附件通信。在一些實施例中,協議標識符可利用反向域名協定被格式化。在一些實施例中,與所述附件的通信可包括從所述附件管理器接收輸出流;以及/或者根據所述應用通信協議向輸入流寫入數據。在一些實施例中,與所述附件的通信可包括從所述附件管理器接收輸入流;以及/或者從所述輸入流接收根據所述應用通信協議被格式化的數據。一種應用利用應用管理器與附件建立通信的方法。該方法可以包括從所述應用管理器接收指定了與所述附件兼容的應用協議的指示;從所述應用管理器接收輸入流和輸出流以用于利用所述應用協議與所述附件通信;以及/或者此后,將用于所述附件的應用協議消息寫入所述輸出流。在一些實施例中,該方法還可以包括向所述應用管理器發送應用協議信息,其中所述應用協議信息可以包括對所述應用所支持的應用協議的指示。在一些實施例中,與所述附件兼容的應用協議可以是由所述應用發送的所述應用協議信息所指示的應用協議。在一些實施例中,應用協議信息所指示的應用協議指示使用反向域名協定的應用協議。公開了一種由在移動計算設備上運行的應用執行的方法。該方法包括從應用管理器請求附件信息,其中附件信息可以包括指示與移動計算設備可通信地相耦合的附件所支持的一個或多個應用協議的信息;判斷附件支持的應用協議是否與應用支持的應用協議相匹配;當應用協議相匹配時,請求用于利用該應用協議與附件通信的輸入流和輸出流; 接收輸入流和輸出流;并且/或者此后,將用于附件的應用協議消息寫入輸出流。在一些實施例中,該方法可以包括利用輸入流讀取來自附件的應用協議消息。在一些實施例中,附件信息指示使用反向域名協定的應用協議。在一些實施例中,附件信息可被存儲在表中并且附件信息可以是去往與附件信息相關聯的元數據的存儲位置的指示符。提供了一種由運行在移動計算設備上的應用執行的方法。該方法包括訪問表,該表包含指示與移動計算設備相耦合的附件所支持的應用協議;判斷應用所支持的應用協議是否與該表中的應用協議相匹配;當應用協議相匹配時,舉行通信會話以利用該匹配應用與附件通信;接收輸入流和輸出流;并且/或者此后,將用于附件的應用協議消息寫入該輸出流。在一些實施例中,該表可以包括與附件相關聯的多個應用協議,并且/或者該應用判斷該應用支持的應用協議是否與該表中的任一應用協議相匹配。在一些實施例中,該方法還可以包括利用輸入流來讀取來自附件的應用協議消息。在一些實施例中,附件信息指示利用反向域名協定被格式化的應用協議。電路、邏輯模塊、處理器和/或其它組件在這里可被描述為“被配置”為執行各種操作。本領域技術人員將認識到,取決于實現方式,這樣的配置可通過對特定組件的設計、設置、互連和/或編程來實現,并且再次地取決于實現方式,被配置組件可以或不可以被重新配置用于不同操作。例如,可編程處理器可以通過提供合適的可執行代碼而被配置;專用邏輯電路可以通過合適地連接邏輯門和其它電路元件而被配置;等等。雖然上述實施例可涉及到具體硬件和軟件組件,然而本領域技術人員將理解,還可以使用硬件和/或軟件組件的不同組合并且被描述為用硬件實現的特定操作也可以用軟件來實現,或者反之,被描述為用軟件實現的特定操作也可以用硬件來實現。包含有本發明的各個特征的計算機程序可被編碼在各種計算機可讀存儲介質上; 合適的介質包括磁盤或磁帶、光存儲介質(例如致密盤(CD)或DVD(數字通用盤))、閃存等。編碼有程序代碼的計算機可讀存儲介質可以與兼容設備封裝在一起或者與其它設備分開地被提供。另外,程序代碼可以被編碼并且經由遵循多種協議的有線、光學和/或無線網絡(包括因特網)被發送,從而允許例如經由因特網下載而被分發。雖然在本公開中關于單個實施例描述了示例和/或細節,然而這些示例或細節可結合這里描述的任何實施例被使用。因此,雖然相對于具體實施例描述了本發明,然而將理解,本發明意圖涵蓋落在所附權利要求范圍內的所有修改和等同物。
權利要求
1.一種用于在附件設備和在移動計算設備上執行的應用之間通信的方法,該方法在所述附件設備處操作,該方法包括利用附件通信協議向所述移動設備傳輸指定了至少一個應用通信協議的信息;以及利用所述附件通信協議與在所述移動設備處運行的應用通信。
2.根據權利要求1所述的方法,其中,與在所述移動計算設備處運行的應用通信包括 在附件通信協議分組內隧道傳輸應用通信協議分組。
3.根據權利要求1所述的方法,還包括從運行在所述移動通信設備上的應用接收應用通信協議命令,并且對其響應來改變所述附件的狀態。
4.根據權利要求1所述的方法,還包括響應于來自運行在所述移動計算設備上的應用的命令,向運行在所述移動計算設備上的應用發送數據,其中所述數據利用所述應用通信協議被發送,并且所述命令利用所述附件通信協議被接收。
5.根據權利要求1所述的方法,其中,所述指定了至少一個應用通信協議的信息按反向域名協定被提供。
6.根據權利要求1所述的方法,還包括使用所述附件通信協議利用所述附件來控制所述移動計算設備的功能。
7.一種附件設備,包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并且被配置為與移動計算設備交換命令和數據,所述通信接口至少具有一個端口 ;以及控制邏輯,該控制邏輯被設置在所述殼體內,并且可通信地與所述通信接口相耦合,所述控制邏輯被配置為利用附件通信協議通過所述通信接口與運行在所述移動計算設備上的操作系統通信;以及利用附件通信協議通過所述通信接口與運行在所述移動計算設備上的應用通信。
8.根據權利要求7所述的附件設備,其中,所述通信接口包括無線通信接口。
9.一種用于在附件設備和在移動設備上運行的應用之間通信的方法,該方法在所述移動設備處操作,該方法包括識別附件設備,其中所述識別使用了附件通信協議;從所述附件設備接收指定了應用通信協議的信息,其中所述信息是利用所述附件通信協議接收的;在所述移動計算設備處運行應用;以及利用所述附件通信協議從所述應用與所述附件設備通信。
10.根據權利要求9所述的方法,還包括判斷所述應用協議是否被列出在所述移動計算設備處的協議表中,其中,所述協議表包括所述移動計算設備處的應用所支持的協議。
11.根據權利要求10所述的方法,還包括在所述協議表不包括所述應用協議的情況中,下載支持所述應用協議的應用。
12.根據權利要求9所述的方法,其中,來自所述附件設備的所述指定了應用通信協議的信息利用反向域名協定來指定一個應用通信協議。
13.—種移動計算設備,包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并被配置為與附件交換命令和數據;存儲器,該存儲器被設置在所述殼體內;以及控制邏輯,該控制邏輯被設置在所述殼體內,并且可通信地與所述存儲器和所述通信接口相耦合,所述控制邏輯被配置為通過所述通信接口從附件設備接收應用通信協議信息,其中所述應用通信協議信息包括所述附件所支持的應用通信協議的標識,并且其中所述應用通信協議信息是利用附件通信協議從所述附件接收的;通過將應用通信協議分組包封在附件通信協議分組內來創建經包封的分組;以及經由所述通信接口將所述經包封的分組發送給所述附件。
14.根據權利要求13所述的移動計算設備,其中,所述通信接口是無線通信接口。
15.根據權利要求13所述的移動計算設備,還包括存儲在所述存儲器中的協議表,其中所述協議表包括安裝在所述移動計算設備上的應用所支持的應用協議的列表。
16.一種在移動計算設備處操作的方法,該方法包括從附件設備接收應用協議標識符,其中所接收的應用協議標識符包括反向域名格式的數據串并且與應用通信協議相關聯;以及判斷所接收的應用協議標識符是否與在所述移動計算設備處的存儲器中所存儲的協議表中所列出的應用協議標識符相匹配,然后,利用所述應用通信協議與所述附件通信,其中所述協議表包括與可在所述移動計算設備處運行的應用相關聯的一個或多個應用協議標識符。
17.根據權利要求16所述的方法,還包括在所接收的應用協議標識符與所述協議表中的應用協議標識符相匹配的情況中,運行與所述協議表中的應用協議標識符相關聯的應用。
18.根據權利要求16所述的方法,還包括利用與所接收的應用協議標識符相匹配的關聯應用協議標識符來下載應用。
19.一種移動計算設備,包括 殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并被配置為與附件交換命令和數據;存儲器,該存儲器被設置在所述殼體內,所述存儲器包括列出了與應用兼容的協議的所支持應用協議列表,其中所支持應用協議包括安裝在所述移動計算設備上的應用所支持的應用協議;以及控制邏輯,該控制邏輯被設置在所述殼體內,并且與所述存儲器和所述通信接口可通信地耦合,所述控制邏輯被配置為從附件接收標識所述附件所支持的應用協議的消息;判斷所述應用協議是否與存儲在所支持應用協議列表中的所支持應用協議相匹配;以及在發現相匹配的情況中,運行與匹配該應用協議的所支持附件相關聯的應用。
20.根據權利要求19所述的方法,其中,從附件接收的消息標識基于因特網的地址,在所述基于因特網的地址處可以找到支持該應用協議的應用。
21.根據權利要求20所述的方法,還包括從所述基于因特網的地址下載所述應用。
22.根據權利要求21所述的方法,還包括將所述應用安裝在所述移動計算設備中,并運行所述應用。
23.—種移動通信設備,包括殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并被配置為與附件交換命令和數據,所述通信接口具有第一通信端口和第二通信端口 ;存儲器,該存儲器被設置在所述殼體內;以及控制邏輯,該控制邏輯被設置在所述殼體內并且與所述存儲器和所述通信接口可通信地耦合,所述控制邏輯被配置為利用第一應用通信協議通過所述第一通信端口與第一附件通信;以及利用第二應用通信協議通過所述第二通信端口與第二附件通信。
24.根據權利要求23所述的移動通信設備,其中,所述第一通信端口或所述第二通信端口中的至少一者包括無線通信端口。
25.根據權利要求23所述的移動通信設備,其中,所述第一應用通信協議和所述第二應用通信協議不同。
26.根據權利要求23所述的移動通信設備,其中,所述控制邏輯還被配置為利用附件通信協議通過所述第一通信端口與所述第一附件通信并且通過所述第二附件通信端口與所述第二附件通信。
27.根據權利要求23所述的移動通信設備,其中,所述控制邏輯還被配置為通過所述第一端口建立用于與所述第一附件通信的第一通信會話。
28.根據權利要求23所述的移動通信設備,其中,所述控制邏輯還被配置為通過所述第一端口建立用于與所述第二附件通信的第二通信會話。
29.根據權利要求23所述的移動通信設備,其中,所述通信接口包括第三通信端口,并且所述控制邏輯還被配置為利用第三應用通信協議通過所述第三通信端口與第三附件通
30.一種包含程序指令的計算機可讀介質,所述程序指令在被移動計算設備的處理器運行時使得所述處理器執行方法,該方法包括請求用于與第一附件通信的第一通信會話;接收用于所述第一通信會話的會話標識符;利用第一應用協議通過所述第一通信會話與所述第一附件通信;請求用于與第二附件通信的第二通信會話;接收用于所述第二通信會話的會話標識符;以及利用第二應用協議通過所述第二通信會話與所述第二附件通信。
31.根據權利要求30所述的計算機可讀介質,其中,所述第一應用協議和所述第二應用協議不同。
32.根據權利要求30所述的計算機可讀介質,其中,所述第一應用協議和所述第二應用協議相同。
33.根據權利要求30所述的計算機可讀介質,其中,所述程序指令還使得所述處理器判斷所述第一附件或所述第二附件是否與所述移動計算設備可通信地耦合。
34.一種用于在運行在移動計算設備上的應用和與所述移動計算設備通信的附件之間建立通信會話的方法,該方法在所述移動計算設備處執行,該方法包括接收來自所述應用的對與所述附件有關的信息的請求;向所述應用提供附件信息,其中所述附件信息包括與所述附件兼容的至少一個應用通信協議的標識符;接收對在所述附件與所述應用之間用于利用所述應用通信協議進行通信的通信會話的請求;從所述應用接收消息,其中所述消息根據所述應用通信協議被格式化; 將所述消息與附件通信協議包裝材料包裝在一起;以及將所述消息傳輸給所述附件,其中所述消息是根據與所述應用通信協議不同的附件通信協議被傳輸的。
35.根據權利要求34所述的方法,其中,所述附件通信協議包裝材料包括隧道傳輸命令。
36.根據權利要求34所述的方法,其中,所述至少一個應用通信協議的標識符包括以反向域名格式提供的標識符。
37.根據權利要求34所述的方法,還包括從所述附件接收消息,其中所述消息根據附件通信協議被格式化; 從所述消息剝除所述附件通信協議包裝材料;以及將所述消息發送給所述應用,其中所述消息是根據所述應用通信協議被傳輸的。
38.根據權利要求34所述的方法,還包括 監視通信接口處的附件連接;在附件與所述通信接口可通信地耦合的情況下,接收包括附件能力的能力消息,其中所述消息包括與所述附件兼容的至少一個應用通信協議的標識符。
39.根據權利要求38所述的方法,其中,所述能力消息根據所述附件通信協議被格式化。
40.一種移動計算設備,包括 殼體;通信接口,該通信接口至少部分地被設置在所述殼體內,并被配置為利用附件通信協議與附件交換命令和數據;存儲器,該存儲器被設置在所述殼體內;以及控制邏輯,該控制邏輯被設置在所述殼體內并且與所述存儲器和所述通信接口可通信地耦合,所述控制邏輯被配置為運行應用以及作為后臺處理的附件管理器,其中作為附件管理器運行的所述控制邏輯被配置為針對附件與所述通信接口的耦合而監視所述通信接口;在附件與通信接口相耦合的情況下,利用所述附件通信協議從所述附件接收包括兼容應用協議的附件能力信息;從所述附件接收與附件通信協議包裝材料包裝在一起的按應用通信協議格式化的消息;從所述消息剝除所述附件通信協議包裝材料;以及將消息傳輸給所述應用。
41.根據權利要求40所述的移動計算設備,其中,所述附件能力是利用所述附件通信協議接收的。
42.根據權利要求40所述的移動計算設備,其中,作為附件管理器運行的所述控制邏輯還被配置為建立輸入數據流使得能從該輸入數據流讀取數據。
43.根據權利要求42所述的移動計算設備,其中,作為附件管理器運行的所述控制邏輯利用所述輸入數據流將從所述附件接收的消息傳輸給所述應用。
44.根據權利要求40所述的移動計算設備,其中,作為附件管理器運行的所述控制邏輯還被配置為從所述應用接收按應用通信協議格式化的消息;將所述附件通信協議消息與附件通信協議包裝材料包裝在一起;以及將所述消息傳輸給所述附件。
45.根據權利要求44所述的移動計算設備,其中,作為附件管理器運行的所述控制邏輯還被配置為建立輸出數據流使得數據能被應用寫入所述輸出數據流并被發送給所述附件。
46.根據權利要求45所述的移動計算設備,其中,作為附件管理器運行的所述控制邏輯將從所述輸出數據流接收的消息傳輸給所述附件。
47.一種包含程序指令的計算機可讀介質,所述程序指令在被移動計算設備的處理器運行時使得所述處理器執行方法,該方法包括從附件管理器請求附件信息,其中所述附件管理器是運行在所述移動計算設備處的后臺處理,并且所述附件管理器在運行在所述移動計算設備處的應用和與所述移動計算設備可通信地耦合的附件之間提供通信連接;在附件與所述移動計算設備可通信地相耦合的情況下,從所述附件管理器接收附件標識符以及指定了與所述附件兼容的至少一個應用通信協議的一個或多個協議標識符; 判斷所述應用與所述至少一個應用協議是否兼容;在所述應用兼容的情況下,舉行會話以利用所述應用通信協議通過所述附件管理器來與所述附件通信;以及利用所述附件通信協議與所述附件通信。
48.根據權利要求47所述的計算機可讀介質,其中,協議標識符利用反向域名協定被格式化。
49.根據權利要求47所述的計算機可讀介質,其中,與所述附件的通信包括 從所述附件管理器接收輸出流;以及根據所述應用通信協議向輸入流寫入數據。
50.根據權利要求47所述的計算機可讀介質,其中,與所述附件的通信包括 從所述附件管理器接收輸入流;以及從所述輸入流接收根據所述應用通信協議被格式化的數據。
51.一種應用利用應用管理器與附件建立通信的方法,該方法包括 從所述應用管理器接收指定了與所述附件兼容的應用協議的指示;從所述應用管理器接收輸入流和輸出流以用于利用所述應用協議與所述附件通信;以及此后,將用于所述附件的應用協議消息寫入所述輸出流。
52.根據權利要求51所述的計算機實現的方法,還包括向所述應用管理器發送應用協議信息,其中所述應用協議信息包括對所述應用所支持的應用協議的指示。
53.根據權利要求52所述的計算機實現的方法,其中,與所述附件兼容的應用協議是由所述應用發送的所述應用協議信息所指示的應用協議。
全文摘要
本發明的實施例提供了用于移動計算設備與附件之間的通信的各種通信技術。移動計算設備通用的附件協議可被用于一些通信。在移動計算設備處運行的應用可以利用應用通信協議來與附件通信。在一些實施例中,該應用通信協議可以與附件通信協議不同。在其它實施例中,該應用協議可以僅被應用和附件識別。在一些實施例中,可以通過將遵守應用協議的消息封裝在遵守附件通信協議的消息內來在應用與附件之間傳輸消息。
文檔編號H04J3/16GK102428665SQ201080021428
公開日2012年4月25日 申請日期2010年3月11日 優先權日2009年3月16日
發明者保羅·霍爾登, 勞倫斯·G·波爾頓, 尼汀·加納特拉, 彼得·T·蘭根費爾德, 斯科特·克呂格爾, 米特切爾·安德勒爾, 約翰·M·阿南尼, 耶西·李·多羅古斯克爾, 艾米麗·克拉克·舒爾波特, 詩雅姆·S·特普拉尼 申請人:蘋果公司