JP2010233217A - アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信 - Google Patents

アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信 Download PDF

Info

Publication number
JP2010233217A
JP2010233217A JP2010058265A JP2010058265A JP2010233217A JP 2010233217 A JP2010233217 A JP 2010233217A JP 2010058265 A JP2010058265 A JP 2010058265A JP 2010058265 A JP2010058265 A JP 2010058265A JP 2010233217 A JP2010233217 A JP 2010233217A
Authority
JP
Japan
Prior art keywords
accessory
application
protocol
mobile computing
computing device
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.)
Granted
Application number
JP2010058265A
Other languages
English (en)
Other versions
JP4842383B2 (ja
Inventor
Paul Holden
ポール ホールデン,
Lawrence G Bolton
ローレンス, ジー. ボルトン,
Nitin Ganatra
ニチン ガナトラ,
Mitchell Adler
ミッチェル アドラー,
Schubert Emily Clark
エミリー, クラーク シューベルト,
Jesse Lee Dorogusker
ジェシー, リー ドログスカー,
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 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 Inc filed Critical Apple Inc
Publication of JP2010233217A publication Critical patent/JP2010233217A/ja
Application granted granted Critical
Publication of JP4842383B2 publication Critical patent/JP4842383B2/ja
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/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)
  • Studio Devices (AREA)

Abstract

【課題】移動体コンピューティング装置とアクセサリとの間で通信するための種々の通信技術を提供する。
【解決手段】移動体コンピューティング装置に一般的なアクセサリプロトコルは、ある通信に対して使用可能である。移動体コンピューティング装置上で実行されているアプリケーションは、アプリケーション通信プロトコルを使用してアクセサリと通信できる。いくつかの実施形態において、アプリケーション通信プロトコルは、アクセサリ通信プロトコルと異なってもよい。他の実施形態において、アプリケーションプロトコルはアプリケーション及びアクセサリによってのみ認識されてもよい。いくつかの実施形態において、アプリケーションプロトコルに準拠するメッセージは、メッセージをアクセサリ通信プロトコルに準拠するメッセージ内にパッケージ化することによりアプリケーションとアクセサリとの間で通信される。
【選択図】図2

Description

本発明は、一般に、アクセサリと移動体コンピューティング装置との間の通信に関し、特に、そのような通信を行なうためにアクセサリ及び/又はアプリケーション専用プロトコルを使用することに関する。
移動体コンピューティング装置は広く普及している。多くの企業がiPhone(登録商標)、iPod Touch(登録商標)、種々のBlackBerry(登録商標)装置及びGoogleのAndroid(登録商標)プラットフォームと互換性のあるスマートフォン等の移動体コンピューティング装置を作成しているが、それらはほんの一例である。多くの場合、移動体コンピューティング装置は、ウェブブラウザ、ワードプロセッサ、電子メールアプリケーション、地図、電話サービス、ゲーム、オーディオアプリケーション、ビデオアプリケーション等を含む。更にアクセサリも、移動体コンピューティング装置と共に使用するために作成されている。そのようなアクセサリは、1つ以上のコネクタ及び/又はポートを使用して移動体コンピューティング装置と通信できる。そのようなアクセサリは、移動体コンピューティング装置の機能を制御するために使用されるか、あるいはユーザ及び/又は環境と対話するために移動体コンピューティング装置により使用される。
種々の実施形態によると、アクセサリは、アクセサリ専用通信プロトコル及び/又はアプリケーション専用通信プロトコルを使用して移動体コンピューティング装置上で実行されているアプリケーションと通信してもよい。例えばアクセサリが移動体コンピューティング装置と結合する場合、アクセサリは移動体コンピューティング装置により規定されるアクセサリプロトコルを使用して初期化、識別及び/又は認証手順を実行してもよい。アクセサリは、アクセサリと通信するために移動体コンピューティング装置上で実行されているアプリケーションにより使用されてもよい1つ以上のアプリケーションプロトコルを示す情報を更に通信してもよい。いくつかの実施形態において、アプリケーションプロトコルはアクセサリプロトコルと異なってもよいが、他の実施形態においては、アプリケーションプロトコルはアクセサリプロトコルと同一であってもよい。いくつかの実施形態において、アプリケーションプロトコルパケットは、アクセサリプロトコルパケットの部分内にネストされる。
本明細書で開示される種々の実施形態は、アクセサリとアプリケーションとの間の通信セッションを作成する方法を説明する。いくつかの実施形態は、アクセサリがアプリケーションプロトコルを使用して通信セッションを開くために移動体コンピューティング装置に適切な情報を提供する方法を説明する。他の実施形態は、例えばアプリケーションプロトコルを選択し、通信ストリームを開き、好適なアプリケーションをダウンロードし、アクセサリと通信し、アプリケーションプロトコルパケットをアクセサリプロトコルパケット内にネストするための移動体コンピューティング装置における種々の方式を説明する。いくつかの実施形態において、移動体コンピューティング装置上で実行されているアプリケーションマネージャは、アクセサリとアプリケーションとの間の通信を抽出するために使用される。
添付の図面と共に以下の詳細な説明を参照することにより、本明細書で開示される実施形態の性質及び利点が最もよく理解されるだろう。
本発明のいくつかの実施形態に係るアクセサリ装置と結合される移動体コンピューティング装置を示す図である。 本発明のいくつかの実施形態に係る移動体コンピューティング装置と無線結合されるアクセサリ装置を示す図である。 一実施形態に係るアクセサリと結合される移動体コンピューティング装置を示すブロック図である。 本発明のいくつかの実施形態に係る移動体コンピューティング装置内の種々のモジュール及び処理を示すブロック図である。 本発明のいくつかの実施形態に係るアプリケーションとアクセサリとの間の通信を更に示す簡略化された図である。 本発明のいくつかの実施形態に従ってアクセサリ通信プロトコルコマンド内にアプリケーションプロトコルメッセージをパッケージ化する一例を示す図である。 本発明のいくつかの実施形態に従って図4の実施形態のアクセサリ通信プロトコルのコマンドに対するパスを示す図である。 本発明のいくつかの実施形態に従ってアクセサリ及び互換性のあるアプリケーションを識別する処理を示すフローチャートである。 本発明のいくつかの実施形態に従って互換性のあるアプリケーション及びアクセサリを関連付けるために使用可能な接続プロトコルリスト及びサポートプロトコルテーブルを示す図である。 本発明のいくつかの実施形態に従ってアクセサリに対する互換性のあるアプリケーションの位置を特定するために使用可能なクエリを定式化する技術を示す図である。 本発明のいくつかの実施形態に従ってアクセサリとの通信を開始するためにアプリケーションにより実行される処理を示すフローチャートである。 本発明のいくつかの実施形態に従って2つの異なるアクセサリと同時に対話する移動体コンピューティング装置上のアプリケーションを示す図である。 本発明のいくつかの実施形態に従って2つの異なるアクセサリと同時に対話する移動体コンピューティング装置上の2つのアプリケーションを示す図である。 本発明のいくつかの実施形態に従って同一のアクセサリと同時に対話する移動体コンピューティング装置上の2つのアプリケーションを示す図である。 本発明のいくつかの実施形態に従って移動体コンピューティング装置のアプリケーションとアプリケーションマネージャとハードウェアトランスポート層との間のデータフローを示す図である。 本発明のいくつかの実施形態に従って移動体コンピューティング装置においてアプリケーションマネージャにより実行される処理を示すフローチャートである。 本発明のいくつかの実施形態に従って移動体コンピューティング装置においてアプリケーションマネージャにより実行される処理を示す別のフローチャートである。 本発明のいくつかの実施形態に従ってアクセサリとの通信を開くために移動体コンピューティング装置と結合されるアクセサリにより実行される処理を示すフローチャートである。 本発明のいくつかの実施形態に従ってアクセサリとの通信を開くために移動体コンピューティング装置においてアプリケーションにより実行される処理を示すフローチャートである。
本明細書で開示される本発明の種々の実施形態は、アクセサリ装置と移動体コンピューティング装置との間の通信の種々の態様に関する。いくつかの実施形態において、アクセサリはアクセサリ通信プロトコルを使用して移動体コンピューティング装置と通信できる。アクセサリ通信プロトコルは、通信コマンド、トランスポートリンク、認証ルーチン、識別処理、lingo、パケット構造、データタイプ、あるいはアクセサリ装置と移動体コンピューティング装置との間で通信するために使用される任意の他の適切なコマンド又はデータを指定できる。
移動体コンピューティング装置上で実行されているアプリケーションは、アプリケーション通信プロトコルを使用してアクセサリと通信できる。いくつかの実施形態において、アプリケーション通信プロトコルは、アプリケーションとアクセサリとの間で通信するために通信コマンド、パケット構造、データタイプ、lingo、メッセージ形式等を指定できる。いくつかの実施形態において、アプリケーション通信プロトコルにより指定される通信コマンド、パケット構造、データタイプ、lingo、メッセージ形式のうちの少なくとも一部は、アクセサリ通信プロトコルにより指定されるものと異なってもよい。他の実施形態において、アプリケーション通信プロトコルにより指定される通信コマンド、パケット構造、データタイプ、lingo、メッセージ形式のうちの少なくとも一部は、アクセサリ通信プロトコルにより指定されるものと同一であってもよい。
いくつかの実施形態において、アプリケーションプロトコルは、アクセサリ通信プロトコルにより指定されるトランスポートリンクを使用できる。アプリケーション通信プロトコルは、例えばアプリケーション及び/又はアクセサリの開発者により開発される。いくつかの実施形態において、アプリケーション通信プロトコルは、アプリケーション及び/又はアクセサリ専用コマンド、データ構造等を含むことができる。更に、「アプリケーション通信プロトコル」及び「アプリケーションプロトコル」という用語は、同義で使用される。「アクセサリ通信プロトコル」、「アクセサリプロトコル」、「一般的な通信プロトコル」及び「一般的なプロトコル」という用語も同義で使用される。
図1Aは、アクセサリ装置113に結合される移動体コンピューティング装置102を示す。ケーブル111は、移動体コンピューティング装置102をアクセサリ装置113に結合するために使用される。ケーブル111は、移動体コンピューティング装置102と接続するためのコネクタ108及びアクセサリ装置113と接続するためのコネクタ110を含むことができる。図1Bは、移動体コンピューティング装置102と無線結合されるアクセサリ装置113を示す。
図1A及び図1Bに示す移動体コンピューティング装置は、限定されず、任意の種類の移動演算及び/又は通信装置であってもよい。例えば、iPod TouchO、iPhoneO、Android互換装置及び/又はBlackberry装置が使用される。更に移動体コンピューティング装置102は、メディアプレーヤ機能、ネットワーク化、ウェブブラウジング、電子メール、ワードプロセシング、データ記憶、アプリケーション実行、並びに/あるいは任意の他の演算又は通信機能を提供できる。
アクセサリ113は、例えば外部スピーカシステム、外部ビデオ装置、マルチメディア装置、消費者電子装置、テスト機器、家電製品(例えば、冷蔵庫又は食器洗い機)、運動器具、セキュリティシステム、ホーム又はオフィス自動化システム、カメラ、ユーザ入力装置(例えば、キーボード、マウス、ゲームコントローラ)、測定装置、医療装置(例えば、グルコースモニタ又はインスリンモニタ)、POS装置、自動車、自動車のアクセサリ(例えば、カーステレオシステム又はカーナビゲーションシステム)、ラジオ(例えば、FM、AM及び/又は衛星)、飛行機、バス、電車又は他の大量輸送車における娯楽コンソール等の移動体コンピューティング装置102と通信できる任意の装置であってもよい。移動体コンピューティング装置と共に使用される任意の種類の装置がアクセサリ装置として使用可能である。
図2は、一実施形態に従ってアクセサリ202(例えば、図1A又は図1Bのアクセサリ113を実現する)と結合される移動体コンピューティング装置200(例えば、図1A又は図1Bの移動体コンピューティング装置102を実現する)を示すブロック図である。移動体コンピューティング装置200は、プロセッサ230、記憶装置225、ユーザインタフェース(UI)235、ネットワークインタフェース236及びアクセサリ入出力(I/O)インタフェース205を含むことができる。
1つ以上の集積回路(例えば、従来のマイクロプロセッサ又はマイクロコントローラを含む)として実現されるプロセッサ230は、移動体コンピューティング装置200の動作を制御できる。例えばユーザインタフェース235により提供されるユーザ入力信号に応答して、プロセッサ206は、記憶装置225に格納されてもよいメディア資産の選択及び再生、ネットワークインタフェース236を使用してデータを送出及び/又は検索するための種々のネットワーク(例えば、移動電話網、インターネット又はローカルエリアネットワーク等)へのアクセス、並びに記憶装置225に常駐する種々のアプリケーションプログラム(Apps)226の実行等の種々のタスクを実行できる。更にプロセッサ230は、アクセサリI/Oインタフェース205を介してアクセサリとの通信を管理できる。
ユーザインタフェース235は、サポート電子機器(例えば、デジタル/アナログ又はアナログ/デジタル変換器、あるいは信号プロセッサ等)と共に、タッチパッド、タッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、キーパッド、マイク等の入力制御、並びに表示画面、表示灯、スピーカ、ヘッドフォンジャック等の出力装置を含むことができる。ユーザは、ユーザインタフェース235の種々の入力制御を動作させて移動体コンピューティング装置200の機能性を呼び出すことができ、また、ユーザインタフェース235を介して移動体コンピューティング装置200からの出力を視聴できる。
記憶装置225は、例えばディスク、フラッシュメモリ又は任意の他の不揮発性記憶媒体を使用して実現されてもよい。記憶装置225は、プロセッサ230により実行可能であるアプリケーションプログラム226、システムプログラム及び他のプログラムコード(明示的には図示しない)、並びに以下に説明するように種々のアクセサリとの通信を管理する際に使用されるプロトコルテーブル227等の種々のデータを格納できる。いくつかの実施形態において、記憶装置225は、メディア資産(例えば、資産名、アーティスト、タイトル、ジャンル等)及びプレイリスト(順次又は無作為な順序で再生される資産のリスト)等を記述するメタデータと共に、移動通信装置200により再生されるオーディオ、ビデオ又は静止画等のメディア資産を更に格納できる。記憶装置225は、ユーザの連絡先(名前、住所、電話番号等)、スケジュールされた約束及びイベント、注釈、並びに/あるいは他の個人情報に関する情報等の任意の他の種類の情報を更に格納できる。
アプリケーションプログラム(以下において、「アプリケーション」又は「apps」とも呼ばれる)226は、プロセッサ230により実行可能な任意のプログラムを含むことができる。いくつかの実施形態において、特定のアプリケーションは製造業者により移動体コンピューティング装置200にインストールされ、その一方で、他のアプリケーションはユーザによりインストールされる。アプリケーションプログラムの例は、テレビゲームプログラム、個人情報管理プログラム、メディア資産の再生及び/又はメディア資産データベースのナビゲーションを行なうプログラム、並びに発呼及び/着呼するために電話インタフェースを制御するプログラム等を含むことができる。特定のアプリケーションプログラム226は、アクセサリ202との通信及び/又はアクセサリ202の制御を行なってもよく、特定のアプリケーションプログラム226は、アクセサリ202からの制御信号又は他の入力に応答してもよい。例を以下に説明する。
ネットワークインタフェース236は、1つ以上の通信網に対するインタフェースを提供できる。例えばネットワークインタフェース236は、移動電話網等の移動通信網を介して通信するために高周波(RF)トランシーバ及び適切な構成要素を内蔵できる。更に又はその代わりに、ネットワークインタフェース236は、インターネット(例えば、WiFiトランシーバ又は3Gトランシーバ等)、パーソナルエリアネットワーク(例えば、Bluetoothネットワーク)又は任意の他のネットワークへの無線接続を内蔵できる。更に他の実施形態において、有線ネットワーク接続(例えば、イーサネット(登録商標))が提供されてもよい。いくつかの実施形態において、同一のハードウェアは、複数のネットワークへの接続をサポートするために使用される。従って、ネットワークインタフェース236は、アナログ/デジタル及び/又はデジタル/アナログ回路網、ベースバンド処理構成要素(例えば、コーデック及びチャネル推定器等)、変調器、復調器、発振器、増幅器、送信機、受信機、トランシーバ、並びに内部及び/又は外部アンテナ等を含むことができる。いくつかの実施形態において、ネットワーク接続性と関連するいくつかの動作の全体又は一部はプロセッサ230上で実行されるプログラム(例えば、符号化、復号化及び/又はデジタルドメインの他の処理)として実現されるか、あるいは専用デジタル信号プロセッサが提供される。
アクセサリI/Oインタフェース205は、移動体コンピューティング装置200とアクセサリ202との間の種々の信号を搬送するように構成される複数の信号パスを含むことができる。一実施形態において、アクセサリI/Oインタフェース205は、Apple Inc.により製造及び販売されるiPodO及びiPhoneO製品で使用されるコネクタに対応する30ピンコネクタを含む。他のコネクタも使用可能である。あるいは又はそれに加えて、アクセサリI/Oインタフェース205は無線インタフェース(例えば、Bluetooth等)を含むことができる。
いくつかの実施形態において、更に移動体コンピューティング装置200は、移動体コンピューティング装置(例えば、iTunesO又はMicrosoftのアプリケーションストア)に媒体及び/又はアプリケーションを提供できる資産管理プログラムを実行するホストコンピュータ(不図示)と通信するためにアクセサリI/Oインタフェース205を使用できる。資産管理プログラムにより、ユーザは移動体コンピューティング装置にメディア資産及び/又はアプリケーションを追加でき且つ/又は移動体コンピューティング装置200からメディア資産を除去できる。ユーザは、移動体コンピューティング装置200上のメディア資産と関連付けられるメタデータを更新できる。いくつかの実施形態において、更にユーザは、プレイリスト及び/又はアプリケーション、並びに他の文書を作成及び更新するために資産管理プログラムと対話できる。一実施形態において、ホストコンピュータは、メディア資産及び/又はアプリケーションのマスタデータベースを維持し、例えばインターネットを介して他のデータベース(関連するメタデータ及びプレイリストを含む)にアクセスでき、資産管理プログラムは、移動体コンピューティング装置200がホストコンピュータに接続する度に、マスタデータベースを移動体コンピューティング装置200の記憶装置225上に維持されるデータベースと自動的に同期させる。他の実施形態において、移動体コンピューティング装置200は、ネットワークインタフェース236を使用して、ホストコンピュータと通信し且つ/又は種々の他のサーバと直接通信し、アプリケーション、メディア資産及び/又は他のデータを取得できる。
アクセサリ202は、コントローラ260、ユーザインタフェース255、移動体コンピューティング装置I/Oインタフェース250、メモリ265及びアクセサリ専用ハードウェア275を含むことができる。
移動体コンピューティング装置I/Oインタフェース250は、アクセサリ202と移動体コンピューティング装置200との間で種々の信号を搬送するように構成される複数の信号パスを含むことができる。一実施形態において、移動体コンピューティング装置I/Oインタフェース250は、Apple Inc.により製造及び販売されるiPodO及びiPhoneO製品で使用される30ピンコネクタと接続するように構成されるコネクタを含むことができる。他のコネクタも使用可能である。例えば、移動体コンピューティング装置I/Oインタフェース250は標準的なUSB又はFireWireコネクタ等を含むことができる。あるいは又はそれに加えて、移動体コンピューティング装置I/Oインタフェース250は無線インタフェース(例えば、Bluetooth等)を含むことができる。
コントローラ260は、例えばデジタルオーディオ復号化、アナログ又はデジタルオーディオ及び/又はビデオ処理、ユーザ入力の処理、並びにアクセサリ機能性の制御等の種々の機能を実行するためのプログラムコードを実行するマイクロプロセッサ又はマイクロコントローラを含むことができる。更にコントローラ260は、移動体コンピューティング装置I/Oインタフェース250を介して移動体コンピューティング装置との通信を管理できる。
ユーザインタフェース255は、サポート電子機器(例えば、デジタル/アナログ又はアナログ/デジタル変換器、あるいは信号プロセッサ等)と共に、タッチパッド、タッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、キーパッド、マイク、プローブ等の入力制御、並びにビデオ画面、表示灯、スピーカ又はヘッドフォンジャック等の出力装置を含むことができる。ユーザは、ユーザインタフェース255の種々の入力制御を動作させてアクセサリ202の機能性を呼び出すことができ、また、ユーザインタフェース255を介してアクセサリ202からの出力を閲覧し且つ/又は聞くことができる。更にいくつかの実施形態において、ユーザはアクセサリユーザインタフェース255を介して移動体コンピューティング装置200(又は移動体コンピューティング装置200上で実行されているアプリケーション)を動作させられる。
メモリ265は、コントローラ260に対するプログラムコード及び/又はデータを格納できる任意の種類のメモリ、ディスク又は他の記憶媒体を使用して実現される。例えばメモリ265は、コントローラ260がアクセサリ専用ハードウェア275及び/又はユーザインタフェース255と対話するように命令できるアクセサリ専用ソフトウェア280を格納できる。いくつかの実施形態において、アクセサリ202は移動体コンピューティング装置200から情報(例えば、ユーザ入力、メタデータ及び/又はアプリケーションデータ)を受信でき、更にそのような情報はメモリ265に格納される。
アクセサリ専用ハードウェア275は、アクセサリ202の所望の機能性を有効にするのに必要な任意のハードウェアを表すことができる。例えばアクセサリ専用ハードウェア275は、任意の種類のセンサ又はメータ等の1つ以上のデータ収集装置を含むことができる。ある実施形態において、アクセサリ専用ハードウェア275は、電気特性(抵抗又は電圧差等)を表すデータを生成する電気メータ、光及び/又は光のパターンを検出する光センサ、動きセンサ、温度センサ、湿度センサ、圧力センサ及び選択された化学物質(例えば、一酸化炭素等の潜在的有毒ガス)が存在することに応答する化学センサ等を含むことができる。アクセサリ専用ハードウェア275は、グルコースメータ、呼吸メータ、心拍数及び/又は心機能モニタ、あるいは血圧モニタ等の1つ以上の医療装置を更に含むことができる。
いくつかの実施形態において、データ収集装置を含むアクセサリ専用ハードウェア275は、物理データに対応するか又は物理データを表す1つ以上の電気信号(例えば、電圧、抵抗及び/又は電流)を提供できる。種々の形態のアナログ信号及び/又はデジタル信号が使用されてもよい。アクセサリ専用ハードウェア275は、コントローラ260に信号を送出する前にその信号を処理する信号処理構成要素を更に含むことができる。いくつかの実施形態において、アクセサリ専用ハードウェア275はコントローラ260に電気信号を直接送出でき、コントローラ260はその信号を処理できる。例えばアクセサリ専用ハードウェア275が熱電対を使用して実現される温度計を含む場合、熱電対からの抵抗データは、アクセサリ専用ハードウェア275により又はコントローラ260により、あるいはそれらの双方により温度データに変換される。更にアクセサリ専用ハードウェア275により収集されるデータを表す信号は、例えば以下に説明するようにアプリケーションプロトコルを使用して移動体コンピューティング装置200上で実行されているアプリケーションに送出される(コントローラ260により処理されるかされないかに関わらず)。従って、移動体コンピューティング装置200上で実行されているアプリケーションは、アクセサリ専用ハードウェア275を使用して収集されるデータを更に処理できる。
いくつかの実施形態において、アクセサリ専用ハードウェア275は、1つ以上のコンピュータ制御可能装置を含むことができる。コンピュータ制御可能装置の例には、モータ、アクチュエータ、照明、カメラ、弁、スピーカ、表示画面、プリンタ及び/又はコントローラ260により制御可能な任意の他の機器が含まれる。いくつかの実施形態において、移動体コンピューティング装置200上で実行されているアプリケーションは、アクセサリ202に制御信号を送出でき、コントローラ260は、制御信号に応答してアクセサリ専用ハードウェア275を動作させられる。
いくつかの実施形態において、アクセサリ専用ハードウェア275はユーザインタフェース255の構成要素を含むことができる。従って、移動体コンピューティング装置200上で実行されているアプリケーションは、アクセサリ202からユーザ入力を受信でき、アクセサリ202を介してユーザに出力を提供でき且つ/あるいは実行可能な任意の動作アクセサリ202を制御できるか、アクセサリ202と対話できるか又はアクセサリ202に応答できる。
いくつかの実施形態において、アクセサリ専用ハードウェア275は、ネットワーク及び/又は通信インタフェースを含むことができる。例えばアクセサリ専用ハードウェア275は、RF受信機(例えば、FM、AM、衛星ラジオ及び/又は他の帯域に対する)及び/又はRF送信機(例えば、個人向けの狭域送信機)を含むことができる。他の実施形態において、アクセサリ専用ハードウェア275は、Bluetoothトランシーバ又は他の狭域無線通信インタフェース等のパーソナルエリアネットワークに対する通信インタフェースを含むことができる。更に他の実施形態において、アクセサリ専用ハードウェア275は、電話インタフェース、GSM、CDMA、並びに/あるいは他の音声及び/又はデータネットワークインタフェースを含むことができる。
従って、アクセサリ専用ハードウェア275は、移動演算及び/又は通信装置との相互運用性が望ましい任意のハードウェアコンポーネントを含むことができる。
本明細書で説明されるシステム構成及び構成要素が例示であり、変形及び変更が可能であることは理解されるだろう。移動体コンピューティング装置及び/又はアクセサリは、特に本明細書で説明されない他の機能を有してもよい。アクセサリ202及び移動体コンピューティング装置200が特定のブロックを参照して本明細書において説明されるが、ブロックは説明の便宜上規定され、構成要素の特定の物理構成を示すことを意図しないことが理解される。更にブロックは、物理的に別個の構成要素に対応する必要はない。
移動体コンピューティング装置200のアクセサリI/Oインタフェース205及びアクセサリ202の移動体コンピューティング装置I/Oインタフェース250により、移動体コンピューティング装置200はアクセサリ202に接続可能になり且つその後アクセサリ202から切断可能になる。本明細書で使用されるように、移動体コンピューティング装置200及びアクセサリ202は、アクセサリI/Oインタフェース205と移動体コンピューティング装置I/Oインタフェース250との間の通信チャネルが開かれる度に「接続」され、通信チャネルが閉じられる度に「切断」される。接続は、物理的接続(例えば、移動体コンピューティング装置200及びアクセサリ202のそれぞれの接続するコネクタの間)により、ケーブル等の間接的な接続により、あるいは無線通信チャネルを確立することにより達成される。同様に切断は、物理的切断により、ケーブルを切断することにより、アクセサリ202又は移動体コンピューティング装置200の電源を切ることにより、あるいは無線通信チャネルを閉じることにより達成される。従って、「USB」(Universal Serial Bus)、FireWire(IEEE1394規格)又は汎用非同期送受信機(「UART」)等の有線チャネル、あるいはBluetooth(BluetoothSIGにより開発され且つ商標BluetoothOの下で使用が許可される狭域無線通信規格)、WiFi(任意のIEEE802.11規格群に準拠する)、無線パーソナルエリアネットワーク又は赤外線等の無線チャネルを含む種々の通信チャネルが使用されてもよい。いくつかの実施形態において、通信は有線チャネル及び無線チャネルの双方を使用して行なわれる。いくつかの実施形態において、移動体コンピューティング装置とアクセサリとの間に複数の通信チャネルが同時に開かれるか、あるいは移動体コンピューティング装置は、各々が異なる通信チャネルを使用する複数のアクセサリに同時に接続される。
特定の通信チャネルに関係なく、移動体コンピューティング装置200及びアクセサリ202が互いに接続されている限り、それらの装置はアクセサリ通信プロトコルにより指定されるようにコマンド及びデータを交換することにより通信できる。アクセサリ通信プロトコルは、移動体コンピューティング装置200とアクセサリ202との間でメッセージを送出するための形式を規定できる。例えばアクセサリ通信プロトコルは、各メッセージがヘッダ、ペイロード及び/又はテールを含むパケットで送出されることを指定してもよい。ヘッダは、開始標識、パケットの長さ及び受信者により処理されるコマンド等の基本情報を提供でき、ペイロードは、コマンドと関連付けられる任意のデータを提供する。関連するデータの量はコマンド毎に異なり、いくつかのコマンドは可変長ペイロードを提供してもよい。パケットは、例えば従来技術において周知のような誤り検出符号又は誤り訂正符号、並びに/あるいは所望の他の情報を提供してもよいテールを更に含む。種々の実施形態において、アクセサリ通信プロトコルは、受信者により行なわれる動作を指示し、タスクの完了、状態の変化又は誤りの発生を信号で伝送し、且つ/又は関連データの性質を識別するための特定のコマンドを規定できる。いくつかの実施形態において、任意の特定のコマンドが一方向にのみ有効になるように、コマンドが規定されてもよい。
アクセサリ通信プロトコルは、装置間で信号を送信するのに有用な1つ以上の物理的トランスポートリンクを更に指定できる。例えばトランスポートリンクは、USBリンク、UARTリンク、FireWireリンク、Bluetoothリンク、WiFiリンク、パラレルリンク、シリアルリンク等であってもよい。このレベルで、アクセサリ通信プロトコルは、例えば開始バイト、同期バイト、終了バイト及び/又は他の補助信号を指定できる。いくつかの実施形態において、アクセサリ通信プロトコルは複数の別のトランスポートリンクを提供できる。従って、単一の移動体コンピューティング装置は、有線リンク及び/又は無線リンクを含む種々の物理リンクを介する通信をサポートできる。
アクセサリ通信プロトコルは、多くの「lingo」を規定できる。一般に「lingo」は、種々のアクセサリによりサポートされる(又はサポートされない)関連するコマンドのグループを示す。一実施形態において、コマンドは、コマンドが属するlingoを識別する第1のバイト及びlingo内の特定のコマンドを識別する第2のバイトにより一意に識別される。他のコマンド構造が使用されてもよい。全てのアクセサリ又はアクセサリが接続される全ての移動体コンピューティング装置は、アクセサリ通信プロトコル内で規定される全てのlingo又は特定のlingoの全てのコマンドをサポートする必要はない(例えば、種々の装置は所定のlingoの種々のバージョンを使用してもよい)。
いくつかの実施形態において、互いに相互運用されるように設計される全てのアクセサリ202及び全ての移動体コンピューティング装置200は、少なくともそのような装置の全てに共通のコマンドを含む「一般的な」lingoをサポートする。一般的なlingoは、移動体コンピューティング装置及びアクセサリが互いに対して自身を識別できるようにし且つ少なくとも各装置がサポートする他のlingo(存在する場合)のうちのいずれか及び各装置が接続されている間に使用しようとする他方の装置の機能を含む各機能のうちのいずれかに関する情報を提供できるようにするコマンドを含むことができる。
一般的なlingoは、移動体コンピューティング装置がアクセサリの意図される一致及び機能を検証するために使用できる認証コマンドを更に含むことができ(あるいは、その逆も成り立つ)、アクセサリ(又は移動体コンピューティング装置)は、認証が失敗した場合に特定のコマンド又はlingoを呼び出すことを阻止されてもよい。例えば移動体コンピューティング装置200内の認証マネージャ(不図示)は、アクセサリ202内の認証コントローラ(不図示)と通信でき、例えば公開鍵暗号法及び移動体コンピューティング装置200の認証マネージャ内に維持されるデジタル証明書の蓄積に基づいて認証手順を実行する。
アクセサリ通信プロトコルの一般的なlingo又は別のlingoは、移動体コンピューティング装置200上で実行されているアプリケーション226とアクセサリ202との間の任意の情報の交換を可能にする「トンネル」コマンドを更に含むことができる。例えば、TunnelToAccコマンドは、移動体コンピューティング装置200からアクセサリ202に送出可能であるとして規定される。このコマンドのペイロードは、任意のデータ、制御信号又は移動体コンピューティング装置200上で実行されているアプリケーション226が生成でき且つアクセサリ202に送出できる他の情報であってもよい。同様に、TunnelToHostコマンドは、アクセサリ202から移動体コンピューティング装置200に送出可能であるとして規定される。このコマンドのペイロードは、任意のデータ、制御信号又はアクセサリ202が生成でき且つ移動体コンピューティング装置200上で実行されているアプリケーション226に送出できる他の情報であってもよい。これらのトンネルコマンドは、アクセサリ通信プロトコルがペイロードの内容に関して曖昧であるように規定される。特定のアプリケーションがデータ、制御信号又は他の情報を処理できるアクセサリにのみそれらのデータ、制御信号又は他の情報を送出する(且つその逆が成り立つ)ように通信を管理する技術の例について以下に説明する。
いくつかの実施形態において、アクセサリは、アプリケーション通信プロトコルを使用して移動体コンピューティング装置において1つ以上のアプリケーションと関連付けられるAPIと通信できる。例えばそのような通信は、上述の「トンネル」コマンドを使用できる。いくつかの実施形態において、アクセサリは、アクセサリ通信プロトコルを使用して1つ以上のアプリケーションと関連付けられるAPIと通信できる。他の実施形態において、アクセサリは、アクセサリ通信プロトコル及び/又はアプリケーション通信プロトコルのいずれか又は双方を使用して移動体コンピューティング装置のオペレーティングシステムと更に通信できる。従って、本明細書で開示される実施形態は、アプリケーション通信プロトコル及び/又はアクセサリ通信プロトコルのいずれか又は双方を使用するアクセサリから移動体コンピューティング装置におけるアプリケーション、API及び/又はオペレーティングシステムへの通信を容易にするために使用される。
移動体コンピューティング装置及びアクセサリにサポートされるアクセサリ通信プロトコルは、アクセサリが呼び出される移動体コンピューティング装置の機能を指示するコマンドを送出することを可能にする単純なリモートlingo、アクセサリにおいて移動体コンピューティング装置のユーザインタフェースの全て又は一部を複製することに関連付けられるコマンド及びデータを通信するために使用される(これにより、より高度なリモート制御をサポートする)リモートユーザインタフェースlingo、ユーザが移動体コンピューティング装置を動作することによりチューナアクセサリを制御することを可能にするチューナlingo及びアクセサリが移動体コンピューティング装置上にデータを格納することを可能にする格納lingo等の種々の他のlingoを含むことができる。任意のlingo又はlingoの組合せ又は他のコマンド又はコマンドのグループが本明細書で説明される実施形態と関連して使用可能である。
本明細書で説明されるアクセサリ通信プロトコルが例示であり、変形及び変更が可能であることは理解されるだろう。本明細書で説明される特定のコマンドは、他のコマンド又はコマンドの組合せ、あるいは他の種類のメッセージ及び形式で置換可能である。更に、本明細書で説明される全てのコマンド及び動作が任意の特定の移動通信装置又はアクセサリによりサポートされる必要はない。
上述したように、移動体コンピューティング装置200上で実行されているアプリケーション226及びアクセサリ202は任意のデータ、制御信号及び/又は他の情報(本明細書においては、「メッセージ」とも呼ばれる)を交換できる。これらのメッセージは、広範な種々の状況に関連することができる。例えば、ユーザ入力事象、検出された外的状況、受信データ、あるいは移動体コンピューティング装置200で起こる可能性のある任意の他の事象又は状況に関連するメッセージは、アクセサリ202に通信される。逆に、ユーザ入力事象、検出された外的状況、受信データ、あるいはアクセサリ202で起こる可能性のある任意の他の事象又は状況に関連するメッセージは、移動体コンピューティング装置200に通信される。
例えばいくつかの実施形態において、移動体コンピューティング装置200は、例えばタッチスクリーン事象、ボタン押下、スクロールホイール事象等のユーザインタフェース255を介するユーザからの入力事象を処理できる。移動体コンピューティング装置200は、移動体コンピューティング装置200上で実行されているアプリケーション、アクセサリ202又はその双方に入力事象を表すデータを提供できる。アクセサリ202は、例えばアクセサリ専用ハードウェア275を制御し且つ/又はコントローラ260で処理するためにそのようなデータを入力として解釈できる。例えばタッチスクリーンデータは、アプリケーション、アクセサリ202又はその双方により使用するために移動体コンピューティング装置200により収集される。いくつかの実施形態において、タッチスクリーンデータは、スワイプ、ピンチ、ドラッグ及び他のジェスチャ等の動き及び/又はタップを表すデータを含むことができる。いくつかの実施形態において、タッチスクリーンデータは、生データ形式(例えば、指の動きに対応する圧力が検出される場所を表す一連の座標)で送出される。他の実施形態において、タッチスクリーンデータは、アクセサリに送出される前にジェスチャ事象(例えば、タップ、スワイプ又はある点から別の点へのドラッグ、ピンチ)等の処理データに変換される。いくつかの実施形態において、生キーボードデータはアクセサリに送出され且つ/又は処理されたキーボードデータはアクセサリに送出される。いくつかの実施形態において、いくつかの種類又は全ての種類のユーザ入力データは、例えば以下に説明するようにアプリケーション及びアプリケーションプロトコルを使用してアクセサリ202に通信される。他の実施形態において、いくつかの種類又は全ての種類のユーザ入力データは、アクセサリ通信プロトコルが特定の種類のユーザ入力データの送出をサポートする範囲に関わらず、アクセサリ通信プロトコルを使用して通信される。
更に移動体コンピューティング装置200は、ユーザ入力以外の情報をアクセサリ202に送出できる。例えばいくつかの実施形態において、移動体コンピューティング装置200は、ユーザ入力装置に加えて種々のセンサ及び/又はデータ収集装置を含むことができる。例としては、加速度計、ジャイロスコープ、コンパス、位置判定装置(例えば、全地球測位システム受信機又は電話三角測量システム)、光センサ、赤外線センサ、カメラ又はネットワークインタフェース(例えば、電話、WiFi、Bluetooth)等が含まれる。移動体コンピューティング装置200は、例えばアクセサリ202からの特定の要求に応答して任意又は全てのこのデータをアクセサリ202に提供できる。いくつかの実施形態において、このデータの一部又は全ては、例えば以下に説明するようにアプリケーション及びアプリケーションプロトコルを使用してアクセサリ202に通信される。他の実施形態において、このデータの一部又は全ては、アクセサリ通信プロトコルが特定の種類の情報の送信をサポートする範囲に関わらずアクセサリ通信プロトコルを使用して通信される。
別の例において、アクセサリ202は、移動体コンピューティング装置200から入力事象を受信できる。そのような事象は、移動体コンピューティング装置200で検出されるユーザ入力及び/又は他のデータに対応する。そのデータは、上述の任意のデータタイプを含むがそれらに限定されない。いくつかの実施形態において、そのような入力事象は、アクセサリ専用ハードウェア275を制御するためにアクセサリ202においてコントローラ260により処理される。例えば移動体コンピューティング装置200におけるタッチスクリーン又は他のユーザ入力事象は、アクセサリ専用ハードウェア275の電源を投入し、ハードウェア275の状態を変更し、ハードウェア275からデータを受信し、ハードウェア275にデータを提供し、ハードウェア275の電源を切り且つ/又はハードウェア275に対する設定を設定するためにアクセサリ202に送出される。例えばタッチスクリーンデータは、生データ形式で又は解釈された事象(例えば、押下、スワイプ、ピンチ)として送出される。いくつかの実施形態において、アクセサリ専用ソフトウェア280は、生タッチスクリーンデータを受信及び/又は解釈する命令を含むことができる。いくつかの実施形態において、アクセサリ専用ソフトウェア280は、生タッチスクリーンデータをアクセサリ専用ハードウェア275に対するコマンド及び/又は制御に変換する命令を含むことができる。別の実施形態において、タッチスクリーンデータは、移動体コンピューティング装置200上で実行されているアプリケーションに生データ形式で提供される。移動体コンピューティング装置200は、データを解釈し、対応するコマンド及び/又は情報をアクセサリ202に送出できる。
更に、アクセサリ202において移動体コンピューティング装置200から受信される入力事象は、コントローラ260がアクセサリ専用ソフトウェア280を実行することにより処理される。いくつかの実施形態において、アクセサリ専用ソフトウェア280は、移動体コンピューティング装置200から受信される入力事象に応答してアクセサリ専用ハードウェア275と対話できる。
更にいくつかの実施形態において、アクセサリ専用ハードウェア275は、アクセサリ202との接続を介して移動体コンピューティング装置200により制御される。例えば移動体コンピューティング装置200上で実行されているアプリケーションは、プロセッサ230により実行された時にアクセサリ202においてアクセサリ専用ハードウェア275を制御でき、ハードウェア275とインタフェースでき、ハードウェア275と相互運用でき且つ/又はハードウェア275から信号を受信できるプログラムコードを含むことができる。いくつかの実施形態において、移動体コンピューティング装置200上で実行されているアプリケーションは、アクセサリ202のコントローラ260上で実行されている制御プログラムとメッセージを交換でき、それによりアクセサリ専用ハードウェア275と通信し且つ/又はハードウェア275の動作を制御するようにコントローラ260に命令する。そのようなメッセージは、例えば以下に説明するようにアプリケーションプロトコルを使用して交換される。
いくつかの実施形態において、アクセサリ専用ハードウェア275は入力データをコントローラ260に提供できる。例えばアクセサリ専用ハードウェア275は、コントローラ260に送出され且つ/又はメモリ265に格納されるデータ(又はデータを表す電子信号;これらの用語は同義で使用される)に物理特性を変換できる測定センサを含むことができる。コントローラ260はそのデータを処理できる(例えば、校正補正の適用、雑音低減及び/又は他のデータ処理動作)。処理データは、アクセサリ202から移動体コンピューティング装置200に送出される。移動体コンピューティング装置200において、アプリケーションは、データを更に処理でき且つ/又はそのデータをユーザインタフェースを介してユーザに提供できる。更にアプリケーションは、データに応答して任意の数の機能を実行できる。
いくつかの実施形態において、アクセサリ及びアプリケーションは、任意の所望のメッセージを交換できる。ここで、「メッセージ」という用語は、一般に任意の種類の制御信号、事象、データ、状態又は構成情報、あるいは送信者が入手可能な任意の他の種類の情報を示す。メッセージの交換を容易にするために、アクセサリ及びアプリケーションは、相互に合意済みのアプリケーションプロトコルを使用できる。アプリケーションプロトコルは、交換可能なメッセージの多くの受け入れ可能な形式を指定できる。特定のアプリケーションプロトコルに準拠する装置又はプログラムは、アプリケーションプロトコルの多くの受け入れ可能な形式に従って送出するメッセージを構造化でき、アプリケーションプロトコルの多くの受け入れ可能な形式に従って受信するメッセージを解釈できる。例えば、バイナリデジタル通信の場合、アプリケーションプロトコルは、メッセージを含むビットが受信者により解釈される方法を指定できる。従って、アクセサリ通信プロトコルのように、アプリケーションプロトコルは、1人の参加者により送出された特定のメッセージが受信者により正確に解釈されるように、パケット構造、コマンド、lingo、ペイロード形式、並びに/あるいは解釈の他の形式、データ構造、セマンティック又は規則を指定できる。実際には、いくつかの実施形態において、アクセサリ通信プロトコルの部分は、特定のアクセサリ及び/又はアプリケーションに対する全て又は一部のアプリケーションプロトコルとして直接採用される。
本明細書で説明する特定の実施形態において、アクセサリプロトコルメッセージは、例えば上述のようなトンネルコマンドを使用してメッセージをアクセサリ通信プロトコルに準拠するパケット内にカプセル化することにより、ラップすることにより又はパッケージ化することにより装置間で送出される。従って、アクセサリ通信プロトコルにより指定されるトランスポートリンクが使用され、アプリケーションプロトコルは物理的トランスポートリンクを指定する必要がない。
種々の異なるアプリケーションプロトコルを使用する無制限の範囲のアクセサリ及びアプリケーションは、特定の移動体コンピューティング装置(又は移動体コンピューティング装置群)と共に使用するために作成されることが考慮される。いくつかの実施形態において、移動体コンピューティング装置200は、接続された各アクセサリにより使用されるアプリケーションプロトコル及び実行し且つ/又はインストールされる各アプリケーションにより使用されるアプリケーションプロトコルを追跡することを含むアプリケーションプロトコル管理機能(例えば、アプリケーションマネージャを使用して)により構成される。例えば、移動体コンピューティング装置200は、特定のアクセサリと共に使用される適切なアプリケーションの識別及び/又は特定のアプリーションが適切なアクセサリを利用可能であるかの識別を容易にするためのシステムサービスを提供できる。これらのサービスは、移動体コンピューティング装置200のシステムサービスが任意のアプリケーションプロトコルに従って実現又は通信することを必要とせずに提供される。
図3は、本発明の一実施形態に係る移動体コンピューティング装置200内の種々のモジュール及び処理を示すブロック図である。図示する種々のモジュールは、図2のプロセッサ230上で実行されているプログラム、移動体コンピューティング装置200内の他のプロセッサ上で実行されているプログラム、特定用途向け集積回路又は他の実現例に対応可能である。いくつかの実施形態において、シングルチップ内の複数のプロセッサチップ又は複数のプロセッサコアは、本明細書で説明する種々のモジュール及び処理を実現するために使用される。プロセッサの一部又は全ては、ソフトウェア及び/又はファームウェアプログラムを実行するプログラマブル汎用プロセッサであってもよく、他のプロセッサは、デジタル信号プロセッサ、組込みの機能性を有する状態遷移機械又はそれらの任意の組合せであってもよい。
ポート305〜307は、それぞれアクセサリ300〜302に通信チャネルを提供する。ポート305〜307の各々は、特定の通信チャネルをサポートする物理ポート及び/又は論理ポートであってもよい。例えばポート305は、USB又はUART等の有線チャネルと関連付けられた物理ポートであってもよく、適切な制御ソフトウェアと共にハードウェア素子(例えば、USB互換ドライバ回路及び/又はピン)を組み込むことができる。ポート306は、Bluetooth等の無線チャネルと関連付けられる論理ポート(例えば、仮想シリアルポート)であってもよい。いくつかの実施形態において、各ポート305〜307は、そのポートと関連付けられる特定の物理トランスポート又はチャネルに適用されるようなアクセサリ通信プロトコルに準拠するメッセージを送出及び受信できる。3つのポートが図示されるが、移動体コンピューティング装置は、任意の組合せで任意の数の物理ポート及び/又は論理ポートをサポートするように設計可能であることが理解される。更に以下に説明するように、いくつかの実施形態において、単一のアクセサリは複数のポートに接続可能である。
例えばプロセッサ230により実行されるファームウェア又はソフトウェアモジュールであってもよいプロトコルマネージャ304は、ポート305〜307から移動体コンピューティング装置−プロトコルメッセージ(コマンドとも呼ばれる)を受信でき、メッセージを解釈する処理を開始できる。いくつかの実施形態において、プロトコルマネージャ304又はプロトコルマネージャ304と関連付けられる関連するプロトコルデーモン(不図示)は、ポート305〜307を作成又は規定でき、それらのポートをコネクタピン及びドライバ回路、無線トランシーバ等の適切な通信ハードウェアに接続できる。一実施形態において、プロトコルマネージャ304(又はその関連するプロトコルデーモン)は、種々のポートで受信されるインバウンド移動体コンピューティング装置−プロトコルメッセージを抽出でき、抽出したメッセージを移動体コンピューティング装置200内のサポート層315又は他の構成要素に出力する。図3の高レベルな処理スタックは、特定のトランスポートリンクに依存しなくてもよい。
別の実施形態において、プロトコルマネージャ304は、サポート層315から接続アクセサリ(例えば、アクセサリ300〜302のうちの任意のアクセサリ)用のアウトバウンド情報(例えば、メッセージを作成したアプリケーション404によりアプリケーションプロトコルに従って構造化されたメッセージ)を受信でき、アウトバウンドメッセージを移動体コンピューティング装置−プロトコルパケットにパッケージ化でき、且つ所望のアクセサリに接続されるポート305〜307の1つにパケットを出力できる。
いくつかの実施形態において、プロトコルマネージャ304(又は関連するプロトコルデーモン)は、ポートの開閉をサポート及び/又は制御できる。例えば仮想ポートの場合、プロトコルマネージャ304は、スタートアップ時に仮想ポートの集合を作成でき、接続が要求されるとポートを開くことができ且つ/又は終了されるとポートを閉じることができる。
プロトコルマネージャ304は、特定のアプリケーションプロトコルを特定のポートと関連付ける動的ポートマップ325を維持できる。例えばアクセサリ300等のアクセサリがポート305等の特定のポートにおいて移動体コンピューティング装置200に対する接続を確立する場合、アクセサリ300は、例えばポート305を介してプロトコル名の文字列を提供することによりプロトコルマネージャ304に対してサポートするアプリケーションプロトコル(例えば、アクセサリ300の場合はAP3)を識別できる。プロトコルマネージャ304は、アプリケーションプロトコル名とポートとの間の関連をポートマップ325に格納できる。その後アクセサリが切断された場合、その関連はポートマップ325から除去される。従って、ポートマップ325は、アプリケーションが現在利用可能であるアプリケーションプロトコルのリストを提供できる。以下に説明するように、互換性のあるアクセサリが接続される場合、そのようなリストは、アクセサリとアプリケーションとの間の通信のルーティング、並びに互換性のあるアプリケーションの通知を容易にする。
ソフトウェアサポート層315は、移動体コンピューティング装置200上で実行されるアプリケーション320〜322とプロトコルマネージャ304(及びオプションとして他の低レベル装置機能)との間を仲介する役割を果たす。例えばソフトウェアサポート層315は、アプリケーションが装置の機能性を呼び出す際に介するアプリケーションプログラムインタフェース(API)を提供できる。ソフトウェアサポート層315は、追加のレベルの装置独立性をアプリケーション320〜322に提供できる。しかし、図3に示す全ての層が必要とされるわけではないことが当業者には理解される。例えばいくつかの実施形態において、プロトコルマネージャ304はアプリケーション320〜322と直接通信できる。
図示する実施形態において、サポート層315はアクセサリ情報ルックアップテーブル330を提供できる。一実施形態において、アクセサリ情報テーブル330は、アクセサリの種類、アクセサリ識別子及び/又はアクセサリによりサポートされる1つ以上のアプリケーションプロトコルの名前等の各接続アクセサリに関する情報を含むことができる。アクセサリが接続し且つ切断すると、アクセサリ情報テーブル330は、プロトコルマネージャ304により提供される情報に応答してポピュレート及び更新される。
アプリケーション320〜322は、同時に又は順次にアプリケーションを実行でき、例えばプロセッサ230により実行可能なプログラムコードとして実現される。種々のアプリケーション320〜322は、移動体コンピューティング装置200及び/又は接続アクセサリ300〜302との種々の形態のユーザ対話を提供できる。例えばアプリケーションは、接続された測定プローブアクセサリにユーザインタフェースを提供できる。アプリケーションは、ユーザ入力に応答して、測定データの記録を開始し且つ測定データの記録を停止することを測定プローブに命令できる。アプリケーションは、測定データをユーザに提示できる。アプリケーションは、データを種々の形式に変換でき且つ/又はある期間にわたる測定値のレコードの閲覧及びデータに対する分析動作の実行(例えば、平均化、傾向分析又は図形的分析等)等の更なるユーザ対話を提供できる。
実行するアプリケーション(例えば、アプリケーション320〜322のうちの任意のアプリケーション)は、互換性のあるアクセサリ(すなわち、アプリケーションにより使用されるアプリケーションプロトコルをサポートするアクセサリ)が接続されるかを判定するために随時アクセサリ情報テーブル330をクエリできる。互換性のあるアクセサリが接続される場合、アプリケーションはアプリケーションプロトコルを使用してアクセサリと通信できる。例えば以下に説明するように、アプリケーションはアクセサリとの通信セッションを開始できる。
本明細書で説明するモジュールが例示であり、変形及び変更が可能であることは理解されるだろう。移動体コンピューティング装置200は、任意の種類のアプリケーションをサポートでき、アプリケーションは、ユーザ又は別の処理の制御下で開始されるか又は終了される。サポート層315及びプロトコルマネージャ304等の特定のモジュールは、ソフトウェア及び/又はファームウェアで実現され、装置の電源投入時に自動的に開始され且つ電源が切られた時又は種々の異常状態が検出された時にのみ終了するように構成される。アプリケーション320〜322は、ユーザ入力又は他の入力に応答して開始及び終了してもよい。いくつかの実施形態において、アプリケーションは、例えば以下に説明するように対応するアクセサリが接続された時に自動的に開始されてもよい。種々のモジュール又は処理は、未使用の時にはリソースの消費を最小限にするために非活動状態に入ってもよい。更に、本明細書で図示する層及びモジュールの全てが必須ではない。例えばいくつかの実施形態においては、アプリケーションはサポート層315を回避してプロトコルマネージャと直接通信してもよい。他の実施形態においては、図3で別個のものとして示されるモジュール又は層は組み合わされてもよく、あるいは移動体コンピューティング装置200の種々のシステムサービス(例えば、オーディオ及び/又はビデオ再生及びネットワーク接続等)と関連付けられるプロトコルデーモン及び/又はモジュール等の追加のモジュール又は層が提供されてもよい。
アクセサリは、図3と類似するモジュール、層及び他の構成要素、あるいはそれらの任意の変形又は変更を実現できることが更に理解される。アクセサリがアクセサリ通信プロトコルに従って移動体コンピューティング装置と情報を交換できる限り、内部実現例は要求に応じて変更可能である。
図3に示すように、いくつかの実施形態における移動体コンピューティング装置200は、同時に実行する複数のアプリケーション320〜322及び/又は複数のアクセサリ305〜307への同時接続を維持できる。アプリケーション及び/又はアクセサリは、種々の(及び潜在的に互換性がない)アプリケーションプロトコルをサポートでき、各アプリケーションプロトコルは、全ての他のアプリケーションプロトコルと区別できるように名前(例えば、固有の文字列)を割り当てられる。例えば図3の実施形態において、アプリケーション320及びアクセサリ301はアプリケーションプロトコルAP1をサポートし、アプリケーション321及びアクセサリ302はアプリケーションプロトコルAP2をサポートし、アプリケーション322及びアクセサリ300はアプリケーションプロトコルAP3をサポートする。
第三者がアプリケーション及び/又はアクセサリを独自に開発できることが考慮される。2つのアクセサリ(又はアプリケーション)が同一のアクセサリプロトコル名を実際には互換性のないアプリケーションプロトコルと関連付ける場合、例えば双方のアクセサリが同一の移動体コンピューティング装置に同時に接続しようとすると、名前の衝突が起こる。そのような衝突を回避するために、アプリケーションプロトコル名に対して名前空間集中管理を提供するのが望ましいだろう。いくつかの実施形態において、中央名前空間管理者(例えば、移動体コンピューティング装置の製造業者)は、開発者からの要求があるとアプリケーションプロトコルに名前を割り当てることができる。別の実施形態において、中央名前空間管理者は、準拠する場合には名前の衝突を防止できる命名規則を単純に規定でき、アクセサリ及び/又はアプリケーションの開発者は、その規則に準拠することにより衝突を回避できる。
一実施形態において、アプリケーションプロトコル名前空間を管理するために逆ドメイン名規則が採用される。従来のドメイン名は、左から右に、下位ドメインから最上位ドメインを提供する。例えばドメイン名「help.example.com」において、「com」という用語は最上位ドメインであり、「example」という用語は下位ドメインであり、「help」という用語は最下位ドメインである。別の例として、ドメイン名「mac.apple.com」は、左から右に最下位ドメイン「mac」、中間ドメイン「apple」及び最上位ドメイン「com」を指定する。一方、逆ドメイン名は「com.apple.mac」を提供する。
逆ドメイン名規則は、特定の企業により使用されるアプリケーションプロトコルを指定するために使用される。すなわち、逆ドメイン名「com.company1.accessory1」は、「accessory1」プロトコルが企業(又は他の開発者)「company1」と関連付けられることを指定する。従って、一般に企業は、逆ドメイン名規則を使用してプロトコルを実現できる。ここで、逆ドメイン名の第1の部分は企業(「com.company1」)を参照し、企業(又は他の開発者)のインターネットドメイン名と関連付けられる。逆ドメイン名の第2の部分(「accessory1」)は、特定のプロトコルを指定する。アクセサリ及び/又はアプリケーションの異なる開発者が異なるインターネットドメイン名と関連付けられるため、逆ドメイン名規則により、開発者はインターネットドメイン名を逆にしたものに基づいてプロトコルを命名することによりアプリケーション及び/又はプロトコル及び/又はアクセサリを他のものと区別できる。この規則により、開発者は他の開発者の命名規則を考慮せずにプロトコルを独自に命名できる。更に、同一の名前を使用することにより2人の開発者間で衝突が起きた場合、対応するインターネットドメイン名を所有する開発者を単純にチェックすることにより、特定の逆ドメイン名に対する権利を有する開発者を判定すべきである。
いくつかの実施形態において、逆ドメイン名は、ある種の装置の全ての装置に特有のグローバル識別子を含むように追記される。例えば全てのシリアルパススルー型装置は、逆ドメイン名に追記される識別子を含むことができる。例えばそのような逆ドメイン名は、形式「com.company1.accessory1.serialpass」又は「serialpass.com.company1.accessory1」を有してもよい。そのような規則により、種々の企業はシリアルパススルー装置を製造でき、移動体コンピューティング装置は、製造業者が異なるにも関わらずそのような装置を認識できる。この逆ドメイン名規則は、アプリケーションプロトコルが識別される方法の一例にすぎない。任意の種類の規則が使用可能である。
従って、アクセサリが移動体コンピューティング装置と接続される場合、アクセサリは、逆ドメイン名規則を使用してサポートされる各プロトコルに割り当てられた名前を供給することによりサポートされるアプリケーションプロトコルのリストを移動体コンピューティング装置に提供できる。アクセサリは、単一のアプリケーションプロトコル又は複数のアプリケーションプロトコルをサポートできる。図3の移動体コンピューティング装置200は、受信した情報に基づいてポートマップ325、アクセサリ情報テーブル330及び/又は他のルックアップテーブルにアクセサリの種類、アクセサリ識別子、アプリケーションプロトコル名及び/又は通信ポート識別子等の情報をポピュレートできる。以下に説明するように、アプリケーション320〜322は、それらのルックアップテーブルを使用して、互換性のあるアクセサリが利用可能であるかを判定でき、サポート層315及び/又はプロトコルマネージャ304は、アプリケーションプロトコルを理解する必要なく、ルックアップテーブルを使用して通信をルーティングできる。
例えば移動体コンピューティング装置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は、例えばサポート層408に対するAPI呼出しを使用してアプリケーション404により作成されたソフトウェアオブジェクトであってもよい。セッション406は、そのセッションを作成したアプリケーション404、並びにセッションを作成する時にアプリケーション404により指定される特定のアクセサリ及び/又はアプリケーションプロトコルと関連付けられる。セッション406は、特にコンテンツがアプリケーション404から受信される入力ストリーム及びコンテンツがアプリケーション404に出力される出力ストリームを提供できる。(セッションの作成については以下に説明する。)
アプリケーションプロトコルを使用してメッセージ(例えば、制御信号及び/又は他の情報)をアクセサリ402に通信するために、アプリケーション404は、メッセージを生成し且つセッション406の出力ストリームにそのメッセージをデータとして書き込む。本実施形態において、アプリケーション404は、アプリケーションプロトコルに従ってメッセージをフォーマットする役割を単独で果たす。移動体コンピューティング装置400上の他の中間処理は、出力ストリームに書き込まれるデータを変更しない。
セッション406は、データが出力ストリームに存在することを検出し、対応する送出(SND)命令をプロトコルマネージャ410に送出する。SND命令は、アクセサリ及びセッション406と関連付けられるアクセサリプロトコル識別子を提供し、出力ストリームからのデータを表す「バンドル」を提供する。いくつかの実施形態において、バンドルは全てのメッセージデータに対応する。しかし、バンドルは、メッセージの長さ及びアクセサリ通信プロトコルによりパケット長に課される制約に依存してメッセージデータの一部のみに対応してもよい。逆に、いくつかの実施形態において、単一のバンドルが複数のアプリケーションプロトコルメッセージを含んでもよい。
プロトコルマネージャ410は、バンドルを送信するためのポートを選択するために、ポートマップ412と共にセッション406により提供されるアクセサリ及びアクセサリプロトコル識別子を使用できる。更にプロトコルマネージャ410は、上述したように例えばTunnelToAccコマンドであるアクセサリ通信プロトコルのコマンド内にバンドルをパッケージ化できる。アクセサリ通信プロトコルコマンドは、送信するためのポート414に送出される。(図4ではポートが1つのみ示されるが、移動体コンピューティング装置400は複数のポートを有することができることは理解される。)
図5A〜図5Cは、本発明のいくつかの実施形態に従ってアクセサリ通信プロトコルコマンド内にアプリケーションプロトコルメッセージをパッケージ化(ラップ)する一例を示す。図5Aは、アクセサリプロトコルパケット500の一例を示す。図示するように、パケット500は、ヘッダ502及びペイロード504を含む。例えばアクセサリ通信プロトコルは、ヘッダのサイズ及びヘッダ502内に提供される情報を要求できる。いくつかの実施形態において、ヘッダ502は、ペイロードに含まれる内容及び/又はペイロードのデータにより行なわれることを示すことができるコマンド又はバイトコードを含むことができる。例えば図示する実施形態において、ヘッダ502はTunnelToAccコマンドに対するコマンドコードを含む。ヘッダ502は、ペイロード504のサイズを指定する情報等の他の情報を更に含むことができる。いくつかの実施形態において、オプションのテール506は、パケット500の最後に含まれてもよい。そのテールには、誤りを検出又は訂正するのに使用可能な情報(例えば、チェックサム)及び/又は要求に応じて他の情報が含まれる。アクセサリ通信プロトコルにおいて、種々のパケットタイプが使用可能であることが、当業者には理解されるだろう。
図5Bは、アプリケーションプロトコルパケット510の一例を示す。この例において、アプリケーションプロトコルパケット510は、ヘッダ512(App.Header)、ペイロード514(App.Payload)及びテール516を含む。アプリケーションプロトコルパケットにおいて、種々の他のパケットタイプ、スタイル、構成、ペイロード、情報領域等が使用可能である。実際には、アプリケーション及び/又はアクセサリは、制約なしでアプリケーション開発者により設計、開発及び/又は作成されるような任意のタイプ、サイズ、構成等のアプリケーションプロトコルパケットを使用できる。いくつかの実施形態において、一部又は全てのアプリケーションプロトコルパケットは、アクセサリ通信プロトコルパケットにモデル化されてもよい(又はアクセサリ通信プロトコルパケットの内容により区別不可能であってもよい)。いくつかの実施形態において、アプリケーションプロトコルパケットはヘッダを含んでも含まなくてもよい。いくつかの実施形態において、アプリケーションプロトコルパケットはテールを含んでも含まなくてもよい。いくつかの実施形態において、アプリケーションプロトコルパケットは固定サイズ又は可変サイズのペイロード514を含むことができる。いくつかの実施形態において、コマンド、データ及び/又は他のメッセージ要素は、ペイロード及び/又はヘッダ内に提供される。コマンド及び/又はデータ及び/又は他のメッセージ要素の特定の特徴は、アプリケーションプロトコルにより指定される。更にアプリケーションプロトコルは、メッセージに対してパケット構造を使用することを全く要求されない。アクセサリプロトコルメッセージは、受信者により正確に解釈可能である任意の形式及び/又は構造を有することができる。
図5Cは、アクセサリプロトコルパケット520のペイロード504内にパッケージ化(又はラップ)されるアプリケーションプロトコルパケット510の一例を示す。図示するように、パケット520は、アクセサリプロトコルパケットヘッダ502を含み、アプリケーションプロトコルパケット510がそれに後続する。いくつかの実施形態において、ヘッダ502は、ペイロードがアプリケーションプロトコルパケットであることを示すコマンド又はバイトコードを含むことができる。この例において、アプリケーションプロトコルパケットは、アプリケーションプロトコルパケットヘッダ512、アプリケーションプロトコルパケットペイロード514及びアプリケーションプロトコルパケットテール516を含む。アプリケーションプロトコルパケット510は、アクセサリプロトコルパケット520のペイロード504を完全に埋めても埋めなくてもよい。更に一般的には、TunnelToAccコマンドに対するアクセサリプロトコルパケットは、アクセサリに出力することを意図する任意のデータバンドルを含むことができ、単一のアクセサリプロトコルパケットを搬送することに限定されない。
図4に戻ると、アクセサリ402は、例えばポート422において、アクセサリプロトコルTunnelToAccコマンドパケットを受信する。ポート422は、例えばアクセサリ402のコントローラ又は他のプロセッサ上で実行されているソフトウェア処理であってもよいプロトコルインタプリタ424にTunnelToAccコマンドパケットをルーティングできる。プロトコルインタプリタ424は、TunnelToAccコマンドを読み出し、そのコマンドに含まれるバンドルを抽出し、アクセサリ402のコントローラ又は他のプロセッサ上で実行されている別の処理426にバンドルを転送できる。処理426は、アプリケーションプロトコルに準拠する受信情報を処理できる任意の処理を含むことができる。例えば処理426は、受信情報から命令を抽出し且つアクセサリ専用ハードウェア(例えば、図2のアクセサリ専用ハードウェア275)に対して対応する制御信号を生成する処理を含むことができる。
アクセサリ402から移動体コンピューティング装置400への通信もサポートされる。例えば処理426は、アプリケーションプロトコルでメッセージに対応するデータバンドルを生成でき、そのバンドルが移動体コンピューティング装置400に送出されるようにプロトコルインタプリタ424に提供できる。プロトコルインタプリタ424は、アクセサリ通信プロトコルのTunnelToHostコマンド内にバンドルをパッケージ化でき(例えば、図5A〜図5Cに示す例と同様に)、移動体コンピューティング装置400に送出するためにポート422にコマンドを送出できる。
移動体コンピューティング装置400において、ポート414は、TunnelToHostコマンドパケットを受信し、それをプロトコルマネージャ410に転送する。プロトコルマネージャ410は、TunnelToHostコマンドを認識し、それに応答してバンドルを抽出し且つバンドルと関連付けられるアクセサリ及びアプリケーションプロトコルのIDと共にそのバンドルをサポート層408に転送する。いくつかの実施形態において、プロトコルマネージャ410は、TunnelToHostコマンドを出力したポートに基づいてそれらの識別子を判定できる。従って、TunnelToHostコマンドは、アクセサリ又はアプリケーションプロトコルのIDを提供する必要はない。
サポート層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は、アクセサリ通信プロトコルのTunnelToAccコマンドパケット内にGet_Tempコマンドをパッケージ化でき、またアプリケーションプロトコル名をルックアップし、このアプリケーションプロトコルがポート414と関連付けられることを判定できる。プロトコルマネージャ410は、アクセサリ402に出力するためにTunnelToAccコマンドパケットをポート414にルーティングできる。
アクセサリ402は、ポート422においてTunnelToAccコマンドを受信できる。プロトコルインタプリタ424はGet_Tempコマンドパケットを抽出し、それを処理426に出力でき、この例において、処理426は温度センサを制御し且つ温度センサからデータを受信する処理であってもよい。従って、処理426は、アプリケーション404に返される温度データを取得できる。処理426は、データを送出するために、例えばアプリケーションプロトコルに準拠するSend_Tempコマンドパケットを生成できる。このパケットは、要求される温度データを含むことができる(例えば、Get_Tempコマンドで指定される温度目盛を使用する)。処理426は、プロトコルインタプリタ424にSend_Tempコマンドパケットをバンドルとして提供でき、移動体コンピューティング装置400に送出されるべきであることが示される。プロトコルインタプリタ424は、アクセサリ通信プロトコルのTunnelToHostコマンド内にSend_Tempコマンドパケットをパッケージ化でき、ポート422は、移動体コンピューティング装置400のポート414にTunnelToHostコマンドを通信できる。ポート414は、入力TunnelToHostコマンドをプロトコルマネージャ410に出力でき、プロトコルマネージャ410は、バンドル(この場合、Send_Tempコマンドパケット)を抽出し且つポートマップ412から判定されるようにバンドルが「com.temprus.thermometer1」と関連付けられるという情報と共にそのバンドルをサポート層408に提供できる。サポート層408は、セッション406に、特にセッション406の入力ストリームにバンドルを誘導できる。アプリケーション404は、入力ストリームからバンドルを読み出し、アプリケーションプロトコルに準拠するSend_Tempコマンドパケットとしてそのバンドルを認識し、温度データを抽出できる。
いくつかの実施形態において、アクセサリは、アプリケーションプロトコル及びアクセサリ通信プロトコルのコマンドの双方を使用してアクセサリと通信できる。図6は、図4の実施形態におけるアクセサリ通信プロトコルのコマンドに対するパスを示す。アプリケーション404は、セッション406を介してアプリケーションプロトコルメッセージを送出することに加えて、サポート層406に対する適切なAPI呼出しを行なうことによりアクセサリ−プロトコルコマンドを呼び出せる。サポート層406は、ポート414を介してアクセサリ402にアクセサリ−プロトコルコマンド(本明細書において、「mobile computing deviceProtCmdOut」で表される)を送出するようにプロトコルマネージャ410に命令できる。同様に、アクセサリ402から受信されるアクセサリ−プロトコルコマンド(本明細書において、「mobile computing deviceProtCmdIn」で表される)は、プロトコルマネージャ410により受信及び処理され、プロトコルマネージャはコマンドをサポート層406に通信できる。その結果、サポート層406はそれに従ってアプリケーション404に対して動作可能である。
いくつかの実施形態において、アプリケーションプロトコルは、アクセサリ通信プロトコルにより指定されるlingo及び/又はコマンドを組み込むことができる。例えばアクセサリ通信プロトコルは、ユーザが移動体コンピューティング装置を介して高周波チューナアクセサリを制御することを可能にするチューナlingoであるRFTunerを規定できる。例えば、RFTuner lingoは、受信機をON及びOFFにするコマンド、局を変更するコマンド等を含むことができる。いくつかの実施形態において、ラジオチューナアプリケーションは、移動体コンピューティング装置において実行可能であり、移動体コンピューティング装置上で実行されているラジオチューナアプリケーション及びラジオチューナアクセサリは、ラジオチューナアクセサリがラジオチューナアプリケーションと通信することを可能にするラジオチューナアプリケーションプロトコルをサポートできる。RFTuner lingoの一部又は全てのコマンドは、ラジオチューナアプリケーションプロトコルと共に使用され、ラジオチューナアプリケーションプロトコルは、他のコマンド(例えば、ユーザが好む事前設定された局のリストを制御するコマンド)も含むことができる。従って、ラジオチューナアプリケーションは、例えば局を変更するためにラジオチューナアクセサリと通信するのにラジオチューナアプリケーションプロトコルの一部としてRFTuner lingoを使用でき、他の動作に対してラジオチューナアプリケーションプロトコルの他のコマンドを更に使用できる。移動体コンピューティング装置は、アプリケーションに依存しないラジオチューナアクセサリと通信するためにアクセサリ通信プロトコルの一部としてRFTuner lingoを使用できる。従って、ラジオチューナアクセサリは、2つのプロトコルのいずれかの単一のlingoを使用して移動体コンピューティング装置にコマンド及び/又はメッセージを送出できる。
別の例として、RFTuner lingoは、ラジオチューナアクセサリの周波数をコマンドに含まれる周波数に同調させるために移動体コンピューティング装置(例えば、移動体コンピューティング装置上で実行されているアプリケーション)から送出されるRFSetFreqコマンドを含むことができる。ラジオチューナアプリケーションは、アプリケーションプロトコルにより規定されるような適切なヘッダ及び/又はテールを含むパケットを作成でき、RFSetFreqコマンド及び要求された周波数をパケットペイロードに含むことができる。パケットは、例えば上述したようなTunnelToAccコマンドであるアクセサリ通信プロトコルのコマンドによりパケットをアクセサリプロトコルパケットにバンドルできるプロトコルマネージャに送出される。アクセサリプロトコルパケットは、アクセサリに送出される。別の例として、RFSetFreqコマンドは、ラジオチューナアクセサリなしで且つトンネルされずに使用される。移動体コンピューティング装置は、RFSetFreqコマンド及び関連する周波数を使用するアクセサリ通信プロトコルを使用してパケットをスタンドアロンパケットとしてアクセサリに送出できる。
更に別の例として、アクセサリは、アプリケーションプロトコル及び/又はアクセサリ通信プロトコルのいずれかを使用して移動体コンピューティング装置と通信するためにRFTuner lingoを使用できる。例えばアクセサリは、移動体コンピューティング装置において特定のアプリケーションと通信する時、TunnelToHostコマンドを使用してRFTunerコマンドを移動体コンピューティング装置にトンネルできる。別の例として、アクセサリは、移動体コンピューティング装置にトンネルせずにRFTunerコマンドを送出できる。
別の実施形態において、スピーカドック等のアクセサリは、移動体コンピューティング装置上でのメディア再生のリモート制御を提供してもよい。リモート制御機能は、アクセサリ通信プロトコルのコマンドを使用して実現される。例えばアクセサリ通信プロトコルは、アクセサリがユーザにより呼び出される特定の機能(例えば、再生、一時停止、次のトラック、前のトラック等)を識別するために送出できるButtonStatusコマンドを含むことができる。移動体コンピューティング装置は、ButtonStatusコマンドを処理し且つそれに従って応答できる格納されたメディアに対する再生エンジンを有することができる。移動体コンピューティング装置上で実行されているアプリケーションは、例えばインターネットデータストリームから他のメディアソースの再生を提供できる。ユーザが格納されたメディアの再生を制御するのと同様にユーザがアクセサリを動作させることによりストリーミングコンテンツの再生をリモート制御できるのが望ましいだろう。従って、ストリームされたコンテンツの再生を制御するためのコマンド又は他の制御信号を含む「ストリーミング制御」アプリケーションプロトコルが規定される。ユーザは、格納又はストリームされたメディアコンテンツの再生を制御するのと全く同様にアクセサリを動作させることができる。格納されたコンテンツが再生されている場合、アクセサリはアクセサリ通信プロトコル(例えば、ButtonStatusコマンド)を使用して再生エンジンにリモート制御情報を通信できる。ストリームされたコンテンツが再生されている場合、アクセサリは、ストリーミング制御アプリケーションプロトコルを使用してアプリケーションにリモート制御情報を通信できる。一実施形態において、アクセサリ通信プロトコルのButtonStatusコマンドは、ストリーミング制御アプリケーションプロトコルに組み込まれる。
更に別の実施形態において、アクセサリは、移動体コンピューティング装置に場所情報を送出してもよい。場所情報は、アクセサリ及び/又は移動体コンピューティング装置の場所を表す任意の情報を含むことができ、全地球測位システム(GPS)受信機を使用したり且つ/又は近傍の移動電話網アクセスポイントに関する情報に基づいて場所を三角測量するなど、種々の方法で判定される。アクセサリ通信プロトコルは、移動体コンピューティング装置に場所情報を送信するためにアクセサリにより使用可能である「場所」lingoを提供してもよい。しかし、アプリケーションは、場所lingoに提供されていない場所情報を使用してもよい。そのような情報は、アクセサリ専用プロトコルを使用してアクセサリによりアプリケーションに送信される。従って、場所情報が使用される方法に依存して、同一のアクセサリは、アクセサリ通信プロトコルの場所lingoか又はアクセサリ専用プロトコルを使用して移動体コンピューティング装置に場所情報を送信できる。
本明細書で説明する通信パスが例示であり、変形及び変更が可能であることは理解されるだろう。例えばパスは、アクセサリ側及び/又は移動体コンピューティング装置側に更に多くの層又は更に少ない層を含んでもよい。いくつかの実施形態において、パケットをトンネルする各移動体コンピューティング装置は1つのアクセサリプロトコルメッセージを含むが、これは必須ではない。例えば受信者(状況に応じてアクセサリ又はアプリケーション)が受信した複数のデータバンドルからメッセージを再構成できると仮定すると、単一のアクセサリプロトコルメッセージは、パケットをトンネルする複数の移動体コンピューティング装置を使用して送出されてもよい。同様に、受信者がバンドルを複数のメッセージに構文解析できると仮定すると、パケットをトンネルする単一の移動体コンピューティング装置は複数のアクセサリプロトコルメッセージを含んでもよい。
図4の説明において、アプリケーション404が互換性のあるアクセサリ402とのセッション406を既に確立していることが仮定された。次に、アプリケーションが互換性のあるアクセサリを識別し(又はその逆が可能であり)且つセッションを確立することを可能にする技術の例を説明する。
図7は、本発明の一実施形態に従ってアクセサリ及び互換性のあるアプリケーションを識別する処理700を示すフローチャートである。処理700は、ブロック702で開始できる。ブロック704において、移動体コンピューティング装置は、アクセサリが接続されているかを判定できる。例えば移動体コンピューティング装置は、例えば図1Aに示すようにアクセサリがコネクタと物理的に結合されているか又は例えば図1Bに示すようにアクセサリが移動体コンピューティング装置と無線結合されているかを検出できる。上述したように、アクセサリは、移動体コンピューティング装置とアクセサリとの間の有線又は無線通信チャネルが開かれている時は常に接続されていると考えられ、ブロック704は、そのようなチャネルが開いていることを検出することを含む。移動体コンピューティング装置上で実行されているアプリケーションマネージャは、移動体コンピューティング装置とアクセサリとの間の通信チャネルが開いているかを判定するためにハードウェア接続又は通信モジュールを監視できる。
ブロック706において、移動体コンピューティング装置は、アクセサリからアプリケーションプロトコル情報を受信できる。いくつかの実施形態において、この情報は、アクセサリ通信プロトコルにより規定されるパケットを使用して通信される。他の実施形態において、アプリケーションプロトコル情報は、アクセサリ及び移動体コンピューティング装置のいずれか又は双方により理解される任意の方法で通信される。例えばアプリケーションプロトコル情報は、USBプロトコル、Bluetoothプロトコル又はWiFiプロトコル等の任意の業界標準の通信プロトコルを使用して通信される。例えばアクセサリ通信プロトコルは、アクセサリが自身に関する情報及び自身の機能に関する情報を提供するために移動体コンピューティング装置に送出できる1つ以上のコマンド及び関連するデータ形式を指定できる。いくつかの実施形態において、これらのコマンドは、アクセサリ通信プロトコルの一般的なlingoの一部であってもよい。アクセサリにより提供される情報は、アクセサリによりサポートされるアプリケーション通信プロトコルの名前のテキスト文字列を含むことができる。名前は、例えば上述したような逆ドメイン名規則又は任意の他の所望の命名規則を使用して指定される。アクセサリは、他の識別情報を更に送出できる。例えばアクセサリは、アクセサリの種類、製造業者、型名、シリアル番号、ハードウェア、ソフトウェア及び/又はファームウェアバージョン等を識別する情報を送出できる。アクセサリは、使用できるか又は使用することを意図する移動体コンピューティング装置の機能を示す情報を更に送出できる。例えばアクセサリは、使用してもよいアクセサリ通信プロトコルのlingo、オーディオ及び/又はビデオ信号を移動体コンピューティング装置から受信するのか又は移動体コンピューティング装置に提供するのか、並びに移動体コンピューティング装置の好適な初期動作状態(例えば、オーディオ及び/又はビデオ信号交換が最初に有効にされるべきか又は無効にされるべきか、オーディオ及び/ビデオ信号伝送に対する好適な形式)等を指定できる。
他の実施形態において、アプリケーションプロトコルは、アプリケーションストアを参照することにより指定されるか又はインターネットを介してサーバから指定される。例えばアクセサリが移動体コンピューティング装置に結合される場合、移動体コンピューティング装置は、アプリケーションストアから及び/又はインターネットを介してサーバからアプリケーションプロトコル情報を要求できる。一実施形態において、移動体コンピューティング装置は、アクセサリ製造業者、型名及び/又はシリアル番号等のアクセサリ識別情報をアプリケーションストア又は他のサーバに送出でき、それに応答してアプリケーションプロトコル情報を受信できる。例えば、アクセサリから送出されたアプリケーションプロトコル情報は、アプリケーションプロトコル名、種々のアプリケーションプロトコルコマンド、メッセージ及び/又はパケット仕様を指定するファイル、アプリケーションプロトコルと互換性のあるアプリケーションの一覧、アプリケーション又はアプリケーション更新データがダウンロードされるネットワークの場所の指示等を含むことができる。アプリケーションプロトコル情報は、メタデータ形式で送出される。いくつかの実施形態において、種々のバージョンのアプリケーションプロトコルがアプリケーションストア又はインターネットを介して利用可能にされる。例えば種々のバージョンのアプリケーションプロトコルは、種々のレベルの機能性を可能にでき、種々の価格で移動体コンピューティング装置と共に使用するために提供される。例えば「ライト」バージョン、フリーバージョン、フルバージョン、デモバージョン等が利用可能にされる。例えばフルバージョンが移動体コンピューティング装置及び/又はアクセサリにより使用可能なコマンドの集合を規定できる一方、ライトバージョンはフルバージョンにより規定されるコマンドの部分集合を規定する。
いくつかの実施形態において、アプリケーションプロトコルは、移動体コンピューティング装置に通信される時に列挙される。アクセサリは、インデックス番号又は各アプリケーションに関連するある種の指示によりサポートされる各アプリケーションプロトコルを識別できる。例えばアクセサリは、インデックス1がアプリケーションプロトコル1であり、インデックス2がアプリケーションプロトコル2であり、インデックス3がアプリケーションプロトコル3であることを示すメッセージを送出できる。各アプリケーションプロトコルは、例えば逆ドメイン名規則を使用するなど、任意の種類の指示を使用して示される。その後、それらのプロトコルはそれらのインデックス番号を使用して参照される。そのような列挙法は、本開示において説明される実施形態で使用される。
ブロック708において、移動体コンピューティング装置は、アクセサリ通信プロトコルに従って認証手順を使用してアクセサリを認証できる。これらの手順は、例えば移動体コンピューティング装置に格納される公開鍵証明書及び種々のアクセサリにより保持される秘密鍵に基づく認証技術、並びに/あるいは他の技術を含むことができる。いくつかの実施形態において、移動体コンピューティング装置は、接続及び識別時に全てのアクセサリを認証できる(例えば、ブロック706の後)。他の実施形態において、移動体コンピューティング装置は、ブロック706において識別の前又は識別中に全てのアクセサリを認証できる。更に他の実施形態において、認証は処理中に後で行なわれるか又は全く行なわれない。例えばいくつかの実施形態において、移動体コンピューティング装置は、アクセサリ通信プロトコルと関連付けられる特定の機能及び/又は動作が認証されたアクセサリによってのみアクセスされることを許可する。そのような「アクセスが制限される」機能は、アクセサリプロトコルコマンドの通信に関連する機能を含むことができる(例えば、上述のトンネルコマンドはアクセスが制限されるコマンドであってもよい)。移動体コンピューティング装置は、アクセスが制限された機能をアクセサリが使用しようとするまでアクセサリを認証するのを待つことができるか、あるいは移動体コンピューティング装置は、アクセスが制限された機能をアクセサリが使用しようとするか又は使用しようとする可能性があることを示す情報を受信した後であればいつでもアクセサリを認証できる。
ブロック710において、移動体コンピューティング装置は、ブロック706で供給されたアプリケーションプロトコル情報を使用して「接続」アプリケーションプロトコルリストを作成及び/又は更新できる。例えば図3を参照すると、ポートマップ325及び/又はアクセサリ情報テーブル330は、新しく接続されたアクセサリ及びそのアプリケーションプロトコルをポートと関連付けるように更新される。ブロック706で提供された任意のアクセサリ識別情報は、移動体コンピューティング装置により接続アプリケーションプロトコルリストに格納される。接続プロトコルリストの一例をテーブル820として図8に示す。テーブル820は、アクセサリが接続されるポートと関連して、現在接続されているアクセサリが識別した各アプリケーションプロトコルを一覧表示する。(従って、テーブル820は図3のポートマップ325の一例であってもよい。)テーブル820の形式及び情報コンテンツは、要求に応じて変更可能であることが理解される。
図7に戻ると、ブロック712において、移動体コンピューティング装置は、アクセサリと関連付けられるアプリケーションプロトコルを使用する任意のアプリケーションが利用可能であるか(そのようなアプリケーションは、本明細書において「互換性のある」アプリケーションとも呼ばれる)を判定できる。例えば移動体コンピューティング装置は、サポートされるアプリケーションプロトコルのテーブルを格納でき、各プロトコルは、そのプロトコルをサポートする1つのアプリケーション(又は複数のアプリケーション)と関連付けられる。サポートアプリケーションプロトコルテーブルの一例をテーブル810として図8に示す。テーブル810は、アプリケーションプロトコル名のリストを含み、各アプリケーションプロトコル名は1つ以上のアプリケーションの識別子と関連付けられる。いくつかの実施形態において、テーブル810は、アプリケーション識別子を返すためにアプリケーションプロトコルの名前を使用してアクセス可能であるルックアップテーブルとして実現可能である。更にテーブル810は、特定のアプリケーションと関連付けられるアプリケーションプロトコルのリストを返すためにアプリケーション識別子を使用してアクセス可能である。
いくつかの実施形態において、テーブル810は、現在実行しているアプリケーションと関連するアプリケーションプロトコルのみを含む。例えばアプリケーションが開始すると、アプリケーションが要求し且つ/又は使用できるアプリケーションプロトコルのリストを移動体コンピューティング装置のシステム処理(例えば、図3のサポート層315)に提供できる。移動体コンピューティング装置のシステム処理は、それに応じてテーブル810を更新できる。他の実施形態において、テーブル810は、移動体コンピューティング装置にインストールされる全てのアプリケーションに対して維持される永続的なテーブルであってもよい。例えばアプリケーションをインストール(又は更新)することは、移動体コンピューティング装置のシステム処理(例えば、サポート層315)にアプリケーションが要求し且つ/又は使用できる任意のアプリケーションプロトコルを通知することを含むことができる。移動体コンピューティング装置は、それに応じてテーブル810を更新できる。
いくつかの実施形態において、アクセサリが移動体コンピューティング装置と結合される場合、アクセサリは、例えばアクセサリ通信プロトコルと関連付けられるアクセサリID lingoを使用してID情報を送出することにより自身を識別できる。ID情報は、例えばテーブル810を参照することにより適切なアプリケーション通信プロトコルを選択するために移動体コンピューティング装置により使用可能である。いくつかの実施形態において、移動体コンピューティング装置は、インターネットを介してサーバ及び/又はアプリケーションストアにアクセサリ識別情報を送出し、アクセサリと互換性のあるアプリケーション通信プロトコルを識別できる。いくつかの実施形態において、アプリケーションストア及び/又はサーバは、アクセサリと互換性のあるアプリケーションプロトコルを詳細に示すファイルを送出できる。いくつかの実施形態において、アクセサリは、移動体コンピューティング装置にアプリケーションプロトコル情報を送出しなくてもよく、アクセサリは、適切なアプリケーション通信プロトコルを選択するために移動体コンピューティング装置により使用されるアクセサリID情報を送出できる。
図7のブロック712に戻ると、サポートアプリケーションプロトコルテーブル(例えば、図8のテーブル810)が提供される実施形態において、移動体コンピューティング装置は、新しく接続されたアクセサリのプロトコル名を使用してサポートプロトコルテーブルにアクセスすることにより、互換性のあるアプリケーションが利用可能であるかを判定できる。例えば図8に示すように、新しく接続されたアクセサリがアプリケーションプロトコル識別子としてprotocolString{c}を提供した場合、処理700のブロック712は、サポートプロトコルテーブル810においてprotocolString{c}をルックアップすることを含むことができ、それにより、アプリケーション「App8」がこのアプリケーションプロトコルと関連付けられることを判定する。この場合、ブロック712の結果、アプリケーションが利用可能であることが判定される。図8に更に示すように、新しく接続されたアクセサリがアプリケーションプロトコルとしてprotocolString{x}を提供した場合、テーブル810においてマッチングするものは見つけられず、処理700のブロック712の結果、互換性のあるアプリケーションが利用可能でないことが判定される。
互換性のあるアプリケーションが利用可能でない場合、処理700は、ブロック714において互換性のあるアプリケーションの位置を特定し且つ取得することを容易にできる。例えば移動体コンピューティング装置は、アプリケーションを購入及び/又はダウンロードするためにアプリケーションストア(例えば、Apple Inc.により提供されるiTunesOストア)又は他のリソースにユーザを誘導できる。種々の援助が提供される。例えばいくつかの実施形態において、ブロック706で移動体コンピューティング装置に提供されたアクセサリ情報は、アクセサリと共に使用するための好適なアプリケーションの識別子を含むことができる。この識別子は、URL(ユニフォームリソースロケータ、例えばワールドワイドウェブページアドレス)又は特定のアプリケーションストアにおける好適なプリケーションの固有の製品識別子等であってもよい。移動体コンピューティング装置は、この情報を使用して好適なアプリケーションの位置を特定でき、アプリケーションを購入及び/又はダウンロードするようにユーザに指示できる。
他の実施形態において、移動体コンピューティング装置は、例えばアプリケーションストア内で互換性のあるアプリケーションを探索するために、他のアクセサリ識別情報を含むアプリケーションプロトコル情報又は他のアクセサリ識別情報を含まないアプリケーションプロトコル情報を使用できる。例えば図9に示すように、移動体コンピューティング装置は、1つ以上の接続されたアプリケーションプロトコル及び/又はアクセサリにより提供される好適なアプリケーションの識別子(appCode830として表される)を使用してクエリ825を定式化できる。移動体コンピューティング装置は、アプリケーションストア又は別の宛先における探索と関連するURL840にクエリ825を送出できる。図示する例において、クエリは、好適なアプリケーションのappCode830と共に全ての接続アプリケーションプロトコル(論理「和(OR)」オペランドにより結合される)のリストを含む。複数のアプリケーションがクエリとマッチングした場合、好適なアプリケーション830は、好適なプリケーション(これは、マッチングするもののリスト上にある)を強調表示するためにアプリケーションストアにより使用される。従って、接続プロトコルリスト820の1つ以上のアプリケーションプロトコルをサポートする複数のアプリケーションが一覧表示されてもよいが、好適なアプリケーション830はデフォルトアプリケーションであってもよく、例えば結果リストの最上部になるように一覧表示され且つ/又は要求に応じてそのアプリケーションを識別する記号、単語又はロゴにより印がつけられてもよい。いくつかの実施形態において、2つ以上のバージョンの好適なアプリケーションに格付けが提供されてもよく、その結果、ユーザが層状のリストを提示されてもよい。例えば、好適なアプリケーションのプロバージョン、標準バージョン及び/又はフリーバージョン全てが提供可能である。
クエリに応答して、アプリケーションストアは、1つ以上の互換性のあるアプリケーションのリストを返すことができ、移動体コンピューティング装置は、ダウンロードする互換性のあるアプリケーションを選択するようにユーザに指示できる。いくつかの実施形態において、アプリケーションは、ダウンロードされるとすぐにインストール可能である。他の実施形態において、ユーザは、アプリケーションをダウンロード及びその後インストールするように別個に指示されてもよい。更に他の実施形態において、ユーザは、アプリケーションを購入するように要求されてもよい。いくつかの実施形態において、クレジットを使用してアプリケーションストアを介して及び/又は先に開設された口座を介して購入される。
更に他の実施形態において、互換性のあるアプリケーションは、アクセサリ自体に事前に格納されてもよく、アクセサリ通信プロトコルは、アクセサリが互換性のあるアプリケーションを格納していることを示すことを可能にするコマンドを含むことができる。そのような指示に応答して、移動体コンピューティング装置は、アクセサリから互換性のあるアプリケーションをアップロードし且つそれをインストールできる。(いくつかの実施形態において、移動体コンピューティング装置は、アクセサリにより提供されるアプリケーションをアップロード及び/又はインストールする前に承認するようにユーザに指示してもよい。)
図7に戻ると、ブロック716において、互換性のあるアプリケーションが現在利用可能であり且つインストールされるかが判定される。(例えば、互換性のあるアプリケーションの位置が特定されていない可能性があるか、あるいはユーザはアプリケーションを購入もダウンロードもしないことを選択した可能性がある。)上記判定が否定である場合、処理700はブロック718で終了する。
ブロック716で互換性のあるアプリケーションが利用可能である(先にインストールされているか又はブロック714を介してインストールされたばかりである)場合、ブロック720において、移動体コンピューティング装置は、互換性のあるアプリケーションが既に実行しているかを判定できる。実行していない場合、アプリケーションはブロック722で開始される。ブロック722は、実現例に依存して、アプリケーションが開始されるべきであると確定するようにユーザに指示することを含むことができる。
ブロック724において、アプリケーションはアクセサリと通信できる。いくつかの実施形態において、ブロック724は、例えば上述したように、セッションを作成すること、並びにセッションを介してアプリケーションプロトコルコマンドを送出及び/又は受信することを含むことができる。ブロック724は、アクセサリ通信プロトコルを使用してコマンド及び他の情報を送出及び/又は受信することを更に含むことができる。従って、同一のアプリケーション及びアクセサリは、アクセサリ通信プロトコルによりサポートされる機能を使用でき、また、アクセサリ通信プロトコルによりサポートされる機能と重複してもしなくてもよいアプリケーションプロトコルを使用して他の情報、制御信号、データ等を交換できる。例えばアクセサリが移動体コンピューティング装置から切断され且つ/又はアプリケーションが終了するまで、通信は無期限に持続可能である。この時点で、処理700は終了する(ブロック718)。
処理700は、移動体コンピューティング装置において、ハードウェア、ソフトウェア及び/又はファームウェアを使用して実現可能である。例えばシステム処理及び/又はアプリケーションは実行し、上述の動作を実行するように移動体コンピューティング装置の機能性を制御してもよい。
いくつかの実施形態において、移動体コンピューティング装置は、アクセサリが切断した後でも移動体コンピューティング装置に接続されていたアクセサリによりサポートされる全ての又は多くのアプリケーションプロトコルの永続リストを維持できる。移動体コンピューティング装置がアプリケーションストアと通信する場合、移動体コンピューティング装置は、アプリケーションストアに永続リスト上のプロトコルの一部又は全てを(例えば、アプリケーションストアを管理するサーバに対する探索クエリとして)提供でき、アプリケーションストアは、ユーザが興味のある可能性があるアプリケーションをリストに基づいて提案できる。例えばアプリケーションストアは、同一のアプリケーションプロトコルを使用する他のアプリケーションを識別できる。永続リストが各アプリケーションプロトコルと関連する特定のアクセサリを識別する情報を更に含む場合、アプリケーションストアにより提供される情報は、識別されたアプリケーションと互換性があるものとして特定のアクセサリを識別できる。これは、ユーザが購入及び/又はダウンロードするアプリケーションを選択するのを支援できる。
図10は、本発明の一実施形態に従ってアクセサリとの通信を開始するためにアプリケーションにより実行される処理1000を示すフローチャートである。処理1000は、例えばアプリケーションが移動体コンピューティング装置において開始される時に開始する(ブロック1002)。例えば、ユーザはアプリケーションを手動で開始できるか、あるいはアプリケーションはアクセサリの接続に応答して移動体コンピューティング装置により自動的に開始される(例えば、図7を参照して上述したように)。
ブロック1004において、アプリケーションは、互換性のあるアクセサリが接続されるかを判定するためにチェックする。(本明細書において使用されるように、アクセサリがアプリケーションにより要求され且つ/又は利用可能であるアプリケーションプロトコルをサポートする場合、アクセサリは特定のアプリケーションと「互換性がある」。)例えば移動体コンピューティング装置が図8のテーブル820等の接続アクセサリテーブルを維持する実施形態において、アプリケーションは、所望のアプリケーションプロトコルの名前を使用してテーブルをクエリし、互換性のあるアクセサリが接続されるかを判定できる。このクエリは、例えばサポート層(例えば、図3のサポート層315)と通信するためにAPI機能呼出しを呼び出すことを含むことができる。
ブロック1006で互換性のあるアクセサリが接続されていない場合、アプリケーションは、ブロック1008においてある特定の期間待機し、再試行できる。例えばタイムアウト期間が経過した場合、処理1000はブロック1020で終了する。いくつかの実施形態において、ブロック1008において待機中、アプリケーションは、互換性のあるアクセサリに接続するようにユーザに指示するメッセージをユーザに対して生成できる。いくつかの実施形態において、アプリケーションは、移動体コンピューティング装置システムサービスに登録され、繰り返しチェックするのではなく、互換性のあるアクセサリが利用可能になった時に通知を要求する。更に他の実施形態において、アプリケーションは、互換性のあるアクセサリが接続されていない場合に終了可能であり、互換性のあるアクセサリが接続されていない限り又はアプリケーションが縮小された機能性で実行可能でない限りアプリケーションが実行しないことをユーザに通知できる。
互換性のあるアクセサリがブロック1010で検出される場合、アプリケーションはそのアクセサリとのセッションを開始できる。例えばアクセサリは、サポート層408(図4を参照)又はアプリケーションマネージャ(図14を参照)のAPI呼出しを呼び出し、特定のアクセサリ及びアプリケーションプロトコルと関連付けられるセッション(例えば、図4のセッション406)を作成できる。図10においてブロック1012により表されるセッションは、無期限に継続可能である。上述したように、セッション中、アプリケーションはセッションと関連付けられるアプリケーションプロトコルを使用してメッセージ(例えば、制御信号、データ、状態及び/又は他の情報)を送出及び/又は受信でき、更にアプリケーションは、所望の機能性がアクセサリ通信プロトコル内でサポートされるように、アクセサリ通信プロトコルを使用してメッセージを送出及び/又は受信できる。
セッションは最終的に終了する。例えばブロック1014において、アプリケーションは、セッションが終了されるべきである(例えば、アプリケーションの終了又はアクセサリがそれ以上使用されないという指示等のユーザ命令に応答して)と判定でき、そのような判定に応答してブロック1016においてセッションを終了できる。別の例として、ブロック1018において、アプリケーションは、アクセサリが切断されたことを通知される。この結果、ブロック1016においてセッションが終了する。ブロック1016のセッションの終了は、例えばセッションオブジェクトを破棄するか又は閉じ且つ関連するリソースを解放するためにAPI呼出しを呼び出すことを含むことができる。例えばアクセサリ及びアプリケーションプロトコルの所定の組合せに対して1度に1つのセッションのみが許可される実施形態において、セッションの終了は、アクセサリ及びそのプロトコルが例えば異なるアプリケーションにより別のセッションにおいて自由に使用できることを示す信号を移動体コンピューティング装置に伝送できる。いくつかの実施形態において、セッションを終了した結果、アクセサリが切断される(例えば、移動体コンピューティング装置はポートを閉じることができる)。他の実施形態において、セッションが終了した後、アクセサリは接続されたままである。更に他の実施形態において、アプリケーションは、セッションが終了した時にアクセサリを切断するかに関して移動体コンピューティング装置システムサービスに命令できる。
セッションが終了すると、処理1000は終了可能である。いくつかの実施形態において、セッション終了処理後にアプリケーションがまだ実行している場合、1000はブロック1004に戻り、互換性のあるアクセサリを探し、新しいセッションを開始する。
本明細書において説明されるアクセサリ通信プロトコルが例示であり、変形及び変更が可能であることは理解されるだろう。順次動作として説明された動作は同時に実行されてもよく、動作の順序は変更されてもよく、且つ/あるいは動作が追加されてもよく、省略されてもよく又は組み合わされてもよい。
いくつかの実施形態において、移動体コンピューティング装置は、複数のアクセサリに対する同時接続及び/又は複数のアプリケーションの同時実行をサポートできる。従って、単一のアプリケーションは複数のアクセサリと同時に対話可能であるか、あるいは単一のアクセサリは複数のアプリケーションと同時に対話可能である。
例えば図11は、本発明のいくつかの実施形態に従ってアクセサリA1106及びアクセサリB1108と同時に対話する移動体コンピューティング装置1102上のアプリケーション1100を示す。アクセサリA1106及びアクセサリB1108は、異なる種類のアクセサリであってもよく、あるいは同様の又は同一のアクセサリであってもよい。この例において、各アクセサリは、異なるポートに接続される。従って、アクセサリA1106はポート1110に接続され、アクセサリB1106はポート1112に接続される。アプリケーション1100は、2つのセッション1114、1116を作成した。セッション1112がアクセサリ1104と関連付けられ且つアプリケーションプロトコルA1を使用する一方で、セッション1114はアクセサリA1106と関連付けられ且つアプリケーションプロトコルB1を使用する。セッション1112及び1114は、互いに依存しない。いずれのセッションも、他方のセッションに影響を及ぼさずに開始、使用及び/又は終了される。いくつかの実施形態において、セッションはプロトコル専用であってもよい。ポート1110は、アクセサリ通信プロトコルを使用して、移動体コンピューティング装置1102とアクセサリ1106との間を通過するようにプロトコルA1に準拠するメッセージに対する「トンネル」を提供でき、ポート1112は、(同一の)アクセサリ通信プロトコルを使用して、移動体コンピューティング装置1102とアクセサリ1108との間を通過するようにプロトコルB1に準拠するメッセージに対する別個のトンネルを提供できる。アプリケーションプロトコルA1及びB1は、要望に応じて異なるプロトコルであってもよく又は同一のプロトコルであってもよいことが理解される。更に、2つのアクセサリ及び2つのセッションが示されるが、十分なハードウェア及び/又はソフトウェアリソース(例えば、ポート及び/又はセッション)が移動体コンピューティング装置上で利用可能であるという条件の下でのみ、任意の数のアクセサリ及びセッションが本明細書で説明する方法で特定のアプリケーションに接続可能である。
図12は、本発明のいくつかの実施形態に従って移動体コンピューティング装置1204上で実行し且つアクセサリA1206及びアクセサリB1208と同時に対話する2つのアプリケーション、アプリケーション1 1200及びアプリケーション2 1202を示す。アクセサリA1206及びアクセサリB1208は、異なる種類のアクセサリであってもよく、あるいは同様の又は同一のアクセサリであってもよい。この例において、各アクセサリは、異なるポートに接続される。従って、アクセサリA1206はポート1210に接続され、アクセサリB1208はポート1212に接続される。アプリケーション1 1200は、アクセサリA1206及びアプリケーションプロトコルA1と関連付けられるセッション1214を作成し、アプリケーション2 1202は、アクセサリB1208及びアプリケーションプロトコルB1と関連付けられるセッション1216を作成した。セッション1212及び1214は互いに依存しない。いずれのセッションも、他方のセッションに影響を及ぼさずに開始、使用及び/又は終了される。ポート1210は、アクセサリ通信プロトコルを使用して、移動体コンピューティング装置1204とアクセサリ1206との間を通過するようにアプリケーションプロトコルA1に準拠するメッセージに対するトンネルを提供でき、ポート1212は、(同一の)アクセサリ通信プロトコルを使用して、移動体コンピューティング装置1204とアクセサリ1208との間を通過するようにアプリケーションプロトコルB1に準拠するメッセージに対する別個のトンネルを提供できる。図11と同様に、アプリケーションプロトコルA1及びB1は、要望に応じて異なるプロトコルであってもよく又は同一のプロトコルであってもよいことが理解される。更に、2つのアクセサリ、2つのアプリケーション及び2つのセッションが示されるが、十分なハードウェア及び/又はソフトウェアリソース(例えば、ポート及び/又はセッション)が移動体コンピューティング装置上で利用可能であるという条件の下でのみ、任意の数のアクセサリ、セッション及び/又はアプリケーションが本明細書で説明する方法で同時にサポート可能である。
図13は、本発明のいくつかの実施形態に従って移動体コンピューティング装置1304上で実行し且つアクセサリ1306と同時に対話する2つのアプリケーション、アプリケーション1 1300及びアプリケーション2 1302を示す。この例において、アクセサリ1306は2つの異なるアプリケーションプロトコル(A1及びA2)をサポートする。プロトコルA1及びA2は、名前のみが異なってもよく、あるいは潜在的に互換性のない2つの別個のプロトコルであってもよい。アクセサリ1306は、プロトコルA1と関連付けられるポート1310で移動体コンピューティング装置1304に接続され、プロトコルA2と関連付けられるポート1312で移動体コンピューティング装置1304に更に接続される。アプリケーション1 1300は、アクセサリ1306及びアプリケーションプロトコルA1と関連付けられるセッション1314を作成したため、ポート1310を介してアクセサリ1306と通信できる。同様に、アプリケーション2 1302は、アクセサリ1306及びアプリケーションプロトコルA2と関連付けられるセッション1316を作成したため、ポート1312を介してアクセサリ1306と通信できる。セッション1312及び1314は互いに依存しない。いずれのセッションも、他方のセッションに影響を及ぼさずに開始、使用及び/又は終了される。ポート1310は、アクセサリ通信プロトコルを使用して、移動体コンピューティング装置1304とアクセサリ1306との間を通過するようにアプリケーションプロトコルA1に準拠するメッセージに対するトンネルを提供でき、ポート1312は、(同一の)アクセサリ通信プロトコルを使用して、移動体コンピューティング装置1304とアクセサリ1306との間を通過するようにアプリケーションプロトコルA2に準拠するメッセージに対する別個のトンネルを提供できる。2つのアプリケーション及び2つのセッションが示されるが、十分なハードウェア及び/又はソフトウェアリソース(例えば、ポート及び/又はセッション)が移動体コンピューティング装置上で利用可能であるという条件の下でのみ、任意の数のアクセサリ、セッション及び/又はアプリケーションが本明細書で説明する方法で同一のアクセサリに同時に接続可能である。
図11〜図13のシステム構成が例示であり、変形及び変更が可能であることは理解されるだろう。例えば、任意の数のアプリケーション及び任意の数のアクセサリが任意の数のセッション及びポートを使用して接続可能である。上述したように、セッションは物理的接続(例えば、ポート等)の詳細からアプリケーションを隠すソフトウェアエンティティであってもよい。従って、アプリケーションは、通信するために、互換性のあるアクセサリが接続されるポートを認識する必要はない。また、通信パスは他の中間層(例えば、上述したようなプロトコルマネージャ及び/又はプロトコルデーモン層)を更に含むことができる。
アプリケーションマネージャは、アプリケーションと通信ポートとの間の通信接続を抽出し、アプリケーションプログラムに対して透過的な通信プロトコルの詳細を示すために使用される。いくつかの実施形態において、通信接続が抽出された場合、アプリケーションプログラムは、通信しているアクセサリの任意の詳細を認識せずに、出力ストリームにデータを書き込み且つ入力ストリームからデータを読み出すことによりアクセサリと通信できる。これは、アプリケーションマネージャを使用して行なわれる。
いくつかの実施形態において、アプリケーションマネージャは、図4に示すサポート層408又はプロトコルマネージャ410の部分を含むことができるか、あるいはサポート層408又はプロトコルマネージャ410により実現される。図14は、そのような抽象概念の一例を示す。図14は、本発明のいくつかの実施形態に従って移動体コンピューティング装置のアプリケーション層1402とアプリケーションマネージャ1404とハードウェアトランスポート層1406との間のデータフローを示す。アプリケーション層1402は、移動体コンピューティング装置で実行する任意の種類の処理であってもよい。ハードウェアトランスポート層1402は、移動体コンピューティング装置とアクセサリとの間の任意の種類のハードウェアインタフェース又はソフトウェアインタフェースを含むことができる。
アプリケーションマネージャ1404は、ハードウェアトランスポート層1406を介し且つアプリケーション層1402を介してアクセサリ間の通信インタフェースを提供できる。それにより、アプリケーション1402が通信しているアクセサリの詳細又はアクセサリが結合されるポートの詳細を認識しないように、通信は抽出される。アプリケーションマネージャ1404は、移動体コンピューティング装置のオペレーティングシステムの一部であるバックグラウンド処理であってもよく又は移動体コンピューティング装置で実行する別のバックグラウンド処理であってもよい。アプリケーションマネージャ1404は、アクセサリと通信するために使用されるアプリケーションに入力ストリーム及び出力ストリームを提供できる。
いくつかの実施形態において、アプリケーションマネージャ1404は、移動体コンピューティング装置と結合される接続アクセサリを管理でき、ハードウェアトランスポート層1406を介してアクセスされる。アプリケーションマネージャ1404は、移動体コンピューティング装置上で実行されているか又はインストールされるアプリケーションのアクセサリ通信機能を更に管理できる。双方の場合において、アプリケーションマネージャ1404はアクセサリ及び/又はアプリケーションと関連付けられるアプリケーションプロトコル情報を格納できる。図15〜図18は、アプリケーションマネージャを使用してセッションを確立し且つアプリケーションとアクセサリとの間の通信を提供するために実現される種々の処理を示す。
図15は、本発明のいくつかの実施形態に従ってセッションを確立及び管理するために移動体コンピューティング装置においてアプリケーションマネージャにより実行される処理1500を示すフローチャートである。処理1500はブロック1502で開始する。ブロック1504において、アプリケーションマネージャは、アクセサリが移動体コンピューティング装置と接続されているか(すなわち、通信しているか)を判定するために通信ポートを監視する。いくつかの実施形態において、アプリケーションマネージャは、アクセサリが移動体コンピューティング装置と結合されるかを判定するために物理コネクタのハードウェア状態を監視できる。いくつかの実施形態において、アプリケーションマネージャは、WiFi又はBluetoothモジュールから無線接続が確立されたことを示す指示を受信できる。ポートの種類に関係なく、アプリケーションマネージャは、通信チャネルがアクセサリに対して確立されたかを判定できる。ブロック1506において、処理1500は、アクセサリが移動体コンピューティング装置と結合されるかを監視し続ける。
ブロック1506で判定されたように、通信チャネルが確立されると、処理1500はブロック1508において認証処理を実行できる。認証は、アクセサリプロトコルを使用して移動体コンピューティング装置とアクセサリとの間で種々のメッセージを送出することにより進む。アクセサリが認証され、移動体コンピューティング装置と通信する許可が与えられると、アクセサリ機能情報はブロック1510において受信される。機能情報は、アクセサリと互換性のある1つ以上のアプリケーションプロトコルを示す情報を含むことができる。アプリケーションプロトコルは、例えば上述したような逆ドメイン名規則又はアプリケーションプロトコルを示す任意の他の規則を使用して示される。ブロック1512において、一部又は全ての情報は、移動体コンピューティング装置においてメモリに格納される。特に、アプリケーションプロトコルは、アクセサリが結合される通信ポートとアプリケーションプロトコルとを関連付けるルックアップテーブル(例えば、図8の接続アプリケーションプロトコルテーブル820)に格納される。
ブロック1514において、アプリケーションマネージャは、アクセサリによりサポートされるアプリケーションプロトコルを使用するアクセサリと移動体コンピューティング装置又は移動体コンピューティング装置上で実行されているアプリケーションとの間の通信を可能にするかを判定できる。いくつかの実施形態において、通信は、アプリケーション(又は他の処理)がアクセサリによりサポートされるアプリケーションプロトコルをサポートする移動体コンピューティング装置上で実行している場合に許可されてもよい。例えばアプリケーションマネージャは、移動体コンピューティング装置上で実行されているアプリケーションによりサポートされるアプリケーションプロトコルをルックアップテーブルに格納されるアプリケーションプロトコルと比較できる。アクセサリとアプリケーションとの間の通信は、アプリケーションプロトコルを使用して行なわれる。いくつかの実施形態において、アプリケーションプロトコルメッセージは、トンネルされるか又はアクセサリプロトコルメッセージ内に埋め込まれる(例えば、アクセサリプロトコルメッセージ内にアプリケーションプロトコルメッセージをラップすることにより)。ブロック1516においてアクセサリが移動体コンピューティング装置から分離されない限り且つ/又はブロック1518においてアプリケーションの実行が終了されない限り、通信は継続可能である。あるいは、いくつかの実施形態において、ルックアップテーブルに格納されるアプリケーションプロトコルはブロック1520で除去され、処理1500はブロック1522で終了可能である。
図16は、本発明のいくつかの実施形態に従って移動体コンピューティング装置上で実行されているアプリケーションとアクセサリとの間の通信を調整するために移動体コンピューティング装置においてアプリケーションマネージャにより実行される処理を示す別のフローチャートである。処理1600は、ブロック1605で開始できる。ブロック1610において、アプリケーションマネージャは、移動体コンピューティング装置上で実行されているアプリケーションからアクセサリ情報の要求を受信できる。ブロック1615でアクセサリが接続されていない場合、メッセージはそのことを示すためにアプリケーションに送出され、処理1600はブロック1610に戻り、アクセサリがMCDと結合されるまで待機できるか、あるいはいくつかの実施形態において処理1600は終了してもよい。アクセサリが移動体コンピューティング装置と接続される場合、ブロック1620において、アプリケーションマネージャは、移動体コンピューティング装置と結合される全てのアクセサリによりサポートされる任意のアプリケーションプロトコルの指示を含むアクセサリ情報をアプリケーションに提供できる。アプリケーションマネージャは、例えば逆ドメイン名規則を使用してアクセサリによりサポートされるアプリケーションプロトコルをメタデータとして含む任意の又は全てのアプリケーションプロトコル情報を送出できる。各アプリケーションプロトコルは、アプリケーションプロトコル識別子と関連付けられる。
いくつかの実施形態において、アプリケーションは、アクセサリ情報を要求するのではなく、アプリケーションプロトコルデータをアプリケーションマネージャに送出できる。アプリケーションマネージャは、存在する場合にはアプリケーションから送出されるアプリケーションプロトコルデータと互換性のあるルックアップテーブル(例えば、接続アプリケーションプロトコルテーブル820)からアプリケーションプロトコルを選択できる。
ブロック1625において、アプリケーションは、例えばアプリケーションプロトコル識別子を使用して、アプリケーションプロトコルに対する通信セッションを開くことができ、アプリケーションマネージャに対してプロトコルを示すことができる。これを行なうことにより、アプリケーションはアクセサリ又はポートに関して何も指定せずに要求できる。通信セッションを開くことに応答して、アプリケーションマネージャは、ブロック1630においてセッションと関連付けられる出力ストリーム及び入力ストリームをアプリケーションに提供できる。いくつかの実施形態において、通信セッションは、特定のアクセサリと関連付けられる特定のプロトコルに対して開かれる。従って、複数のセッションが1つ以上のアクセサリとの通信のための複数のプロトコルを使用して作成される。
ブロック1635において、アプリケーションマネージャは、通信セッションと関連付けられるアプリケーションプロトコルを使用してアプリケーションからアプリケーションプロトコルメッセージを受信できる。アプリケーションプロトコルメッセージは、ブロック1630で提供された出力ストリームを使用してアプリケーションマネージャにおいて受信される。ブロック1640において、アプリケーションマネージャは、アクセサリプロトコルラッパーによりアプリケーションプロトコルメッセージをラップできる。いくつかの実施形態において、このラップは、アプリケーションプロトコルメッセージをアクセサリプロトコルメッセージ(例えば、図5A、図5B及び図5Cに示す)内に埋め込むことを含むことができる。いくつかの実施形態において、このラップは、アクセサリプロトコルを使用してアプリケーションプロトコルメッセージをトンネルできる。ブロック1645において、ラップされたアプリケーションプロトコルメッセージはアクセサリに送出される。その後、処理1600はブロック1650に進む。ブロック1635に戻ると、アプリケーションマネージャがブロック1635でアプリケーションプロトコルメッセージを受信していない場合、処理1600はブロック1650に進める。
ブロック1650において、アプリケーションマネージャは、アクセサリからアクセサリプロトコルメッセージを受信できる。アクセサリプロトコルメッセージは、アクセサリプロトコルメッセージ内にラップされるアプリケーションプロトコルメッセージを含むことができる。ブロック1655において、アクセサリプロトコルラッパーは、アプリケーションプロトコルメッセージから取り除かれる。ブロック1660において、アプリケーションプロトコルメッセージはアプリケーションに送出される。
アクセサリが移動体コンピューティング装置から切断される(1670)か又はアプリケーションが移動体コンピューティング装置において実行するのを中止した(1665)場合、処理1600はブロック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において、互換性のあるアプリケーションが見つけられないか又は移動体コンピューティング装置において利用可能でない場合、3つのオプションのうちの1つが実行される。第1に、ユーザは、互換性のあるアプリケーションを探索し且つ/又はネットワーク位置又はアプリケーションストアからダウンロードしたいかを入力要求される。処理は、ユーザの選択に従って進むことができる。第2に、移動体コンピューティング装置は、ユーザに入力要求せずに互換性のあるアプリケーションを探索し且つ/又はダウンロードできる。第3に、移動体コンピューティング装置は互換性のあるアプリケーションに対してユーザに入力を要求しなくてもよく、且つ互換性のあるアプリケーションを探索しなくてもよい。いくつかの実施形態において、アクセサリは、上記3つのオプションのうち移動体コンピューティング装置が従うべきオプションを示すメッセージを送出できる。このメッセージは、ブロック1810又はブロック1815において又はその前に送出可能である。他の実施形態において、移動体コンピューティング装置におけるシステム設定はユーザにより設定され、上記オプションのうち全てのアクセサリが従うべきオプションを示す。
ブロック1835において、アプリケーションは、互換性のあるアプリケーションプロトコルに結び付けられる通信セッションを開くことができる。セッションが作成されると、アプリケーションマネージャは、ブロック1840においてアプリケーションに入力ストリーム及び出力ストリームを提供できる。ブロック1845において、アプリケーションは、アプリケーションプロトコルに従ってフォーマットされたデータを出力ストリームに書き込み且つ入力ストリームからアプリケーションプロトコルデータを読み出すことによりアクセサリと通信できる。
ブロック1850において判定されるようにアクセサリが移動体コンピューティング装置と結合され、ブロック1855においてセッションを終了しない限り、アプリケーションは、アプリケーションマネージャにより提供される入力ストリーム/出力ストリームを使用してアクセサリと通信できる。あるいは、セッションはブロック1860で終了され、処理1800はブロック1855で終了する。
本発明のいくつかの実施形態において、アクセサリが移動体コンピューティング装置と接続する場合、アクセサリは、好適なアプリケーションを指定するメタデータを含むアクセサリ情報を送出できる。例えばこの情報は、識別段階、認証段階又は機能段階の間に送出される。いくつかの実施形態において、好適なアプリケーションがアプリケーションにおいて実行しておらず、移動体コンピューティング装置においてメモリに格納される場合、アプリケーションは自動的に開始される。いくつかの実施形態において、移動体コンピューティング装置は、ユーザが好適なアプリケーションを開始したいかをユーザに問い合わせる通知をユーザに提供でき、ユーザが肯定応答した場合にアプリケーションを開始できる。
本発明のいくつかの実施形態において、任意の好適なアプリケーション(すなわち、アクセサリが好むアプリケーション)が移動体コンピューティング装置にロードされる場合、移動体コンピューティング装置は、ユーザインタフェースのホームスクリーン上に好適なアプリケーションの1つ又は各々に関連するアイコンを強調表示できる。ユーザは、アクセサリと共に使用する互換性のあるアプリケーションの位置を更に容易に特定できる。例えばアプリケーションアイコンを強調表示する時、移動体コンピューティング装置は、例えばアイコンの色又は陰影を変更でき、アイコンを小刻みに動かすか又は振動させることができ、アイコンを拡大でき、アイコンの形状を変更でき、アイコンのピクチャを変更できる。アイコンの任意の態様が変更可能である。
本発明の他の実施形態において、好適なアプリケーションが移動体コンピューティング装置上に格納もロードもされていない場合、移動体コンピューティング装置は、好適なアプリケーションをダウンロードするためのアプリケーションストア等のネットワーク位置に誘導される。いくつかの実施形態において、メタデータが保存され、好適なアプリケーションは後でネットワーク位置からダウンロードされる。例えば、ユーザが、好適なアプリケーションがダウンロードされる指定されたネットワーク位置にウェブブラウザ又はアプリケーションストアを誘導する場合、アプリケーションはダウンロードされる。別の例として、ユーザが好適なアプリケーションをダウンロードするために適切なレベルの無線接続性を有する場合、アプリケーションはダウンロードされる。いくつかの実施形態において、移動体コンピューティング装置がホストコンピュータと結合される場合、好適なアプリケーションはロードされる。
更にいくつかの実施形態において、アクセサリから移動体コンピューティング装置に送出されるメタデータは、好適なアプリケーションが移動体コンピューティング装置にロードされるアプリケーションとマッチングしない場合の挙動の仕方を指定する指示を更に含むことができる。この指示は、コマンド又はメッセージの一部であってもよい。例えばアクセサリは、好適なアプリケーションが移動体コンピューティング装置においてアプリケーションとマッチングする必要があること及び好適なアプリケーションがアクセサリと対話するためにダウンロードされる必要があることを指定できる。別の例として、アクセサリは好適なアプリケーションを指定できるが、互換性のあるアプリケーションプロトコルにより任意のアプリケーションと相互運用される。この場合、移動体コンピューティング装置は好適なアプリケーションをダウンロードできるが必須ではない。更に場合によっては、移動体コンピューティング装置は、好適なアプリケーションをダウンロードするか又は互換性のあるアプリケーションを使用するかに関してユーザからのフィードバックを要求できる。更に別の例として、アクセサリは、移動体コンピューティング装置がアプリケーションを探索しないか、あるいはネットワーク位置又はアプリケーションストアからアプリケーションをダウンロードしないことを指定できる。更に状況によっては、アクセサリは、ユーザがアプリケーションをダウンロードするかを問われることがないように指定できる。この例において、アクセサリは、移動体コンピューティング装置においてアプリケーションと対話せずに動作可能である。
本発明の更に別の実施形態において、アクセサリは移動体コンピューティング装置と結合され、第1のアプリケーションは移動体コンピューティング装置において実行可能である。第1のアプリケーションは、アクセサリと互換性があってもなくてもよいアプリケーションプロトコルと関連付けられ、アプリケーションはアクセサリと通信していても通信していなくてもよい。アクセサリは、移動体コンピューティング装置にコマンドを送出でき、実行する第2のアプリケーションを指定する。これは、ユーザとの対話に応答して、例えばユーザがアクセサリにおいてボタンを押下することにより開始される。移動体コンピューティング装置は、コマンドの受信に応答して第2のアプリケーションを実行できる。いくつかの実施形態において、第1のアプリケーションは、第2のアプリケーションと同時に実行可能である。いくつかの実施形態において、第1のアプリケーションは閉じられ、第2のアプリケーションはロードされる。いくつかの実施形態において、コマンドはシリアル番号及び/名前によりアプリケーションを指示できる。いくつかの実施形態において、コマンドは、アプリケーションがダウンロードされ且つ実行されるネットワーク位置を更に指定できる。更にいくつかの実施形態において、アクセサリは、アプリケーションが移動体コンピューティング装置において実行していない場合又はオペレーティングシステムが移動体コンピューティング装置において実行している場合に第2のアプリケーションが実行することを要求できる。
本発明は、特定の実施形態に関して説明されたが、多くの変形が可能であることが当業者には認識されるだろう。例えば本明細書で説明される特定の実施形態において、ポートは任意の所定の時間において最大1つのアプリケーションプロトコルと関連付けられる。他の実施形態において、種々のアプリケーションプロトコルを使用する通信は同一ポートにおいて多重化され、且つ/又は同一のアプリケーションプロトコルを使用する種々のアプリケーションとの通信は同一ポートにおいて多重化される。そのような実施形態において、アクセサリプロトコルメッセージを(いずれかの方向に)トンネルするために使用される移動体コンピューティング装置−プロトコルコマンドは、アクセサリプロトコルメッセージの適切な処理を容易にするためにセッション及び/又はアプリケーションプロトコル識別子を含むことができる。そのような一実施形態において、アプリケーションが特定のアクセサリ及びアプリケーションプロトコルと関連付けられるセッションを確立する場合、そのセッションの識別子は、アクセサリ通信プロトコルのコマンドを使用してアクセサリに提供される。そのセッションと関連付けられる次の移動体コンピューティング装置−プロトコルパケット(例えば、トンネルコマンドパケット)は、セッション識別子を含むことができる。従って、複数のセッションが同時に進行中である場合でも且つ複数のセッションに関連する通信が同一ポートにおいて多重化される場合でも、アクセサリは特定のセッションにより送出又は受信してもよい任意のアクセサリプロトコルメッセージを関連付けられる。複数のセッションに対する通信が単一ポートにおいて多重化される場合でも、アクセサリは、複数のセッションに対して別個の状態情報を維持できる。
アプリケーションとアクセサリとの間の通信に対するアプリケーション通信プロトコルの使用方法の一例を提供する本発明の実施形態を説明した。多くの場合、移動体コンピューティング装置は、アプリケーション通信プロトコルに関して曖昧である。いくつかの実施形態は、アクセサリ及び/又はアプリケーションがアプリケーション通信プロトコルを指定する情報を通信する方式を説明する。アクセサリ及び/又はアプリケーションが使用するアプリケーションプロトコルを認識するために、種々の他の技術が使用可能である。例えば移動体コンピューティング装置は、全ての周知のアプリケーションプロトコルを含むテーブルを含むことができる。アクセサリ及び/又はアプリケーションは、テーブルエントリを指し示すことによりアプリケーションプロトコルを指定できる。別の例として、アプリケーションは、任意の数の通信プロトコルを使用してアクセサリからアプリケーションプロトコル情報を要求できる。別の例として、アプリケーションは、アプリケーションによりサポートされる任意のプロトコルをアクセサリに対して指定でき、アクセサリは使用するアプリケーションプロトコルを選択できる。更に別の例として、ビットマスクが使用可能であり、種々のアプリケーションプロトコルを表すために所定の異なるビットマスクが使用可能である。アプリケーションプロトコルを識別する種々の他の手段も使用可能である。
種々の他の実施形態を更に開示する。例えば、アクセサリ装置と移動体コンピューティング装置上で実行されているアプリケーションとの間で通信する方法が開示される。その方法は、アクセサリ装置において動作する。方法は、アクセサリ通信プロトコルを使用して移動装置に対して少なくとも1つのアプリケーション通信プロトコルを指定する情報を通信すること及び/又はアクセサリ通信プロトコルを使用して移動装置上で実行されているアプリケーションと通信することを含むことができる。いくつかの実施形態において、方法は、アクセサリ通信プロトコルを使用して移動体コンピューティング装置上で実行されているオペレーティングシステムと通信することを更に含むことができる。
いくつかの実施形態において、アプリケーション通信プロトコルパケットは、アクセサリ通信プロトコルパケット内をトンネルされる。いくつかの実施形態において、方法は、移動通信装置上で実行されているアプリケーションからアプリケーション通信プロトコルコマンドを受信することと、それに応答してアクセサリの状態を変更することとを更に含むことができる。いくつかの実施形態において、方法は、移動体コンピューティング装置上で実行されているアプリケーションからのコマンドに応答して移動体コンピューティング装置上で実行されているアプリケーションにデータを送出することを更に含むことができる。ここで、データはアプリケーション通信プロトコルを使用して送出され、コマンドはアクセサリ通信プロトコルを使用して受信される。いくつかの実施形態において、少なくとも1つのアプリケーション通信プロトコルを指定する情報は逆ドメイン名規則で提供される。いくつかの実施形態において、方法は、アクセサリ通信プロトコルを使用するアクセサリにより移動体コンピューティング装置の機能性を制御することを更に含むことができる。
筺体、少なくとも部分的に筺体内に配設され且つ移動体コンピューティング装置とコマンド及びデータを交換するように構成され且つ少なくとも1つのポートを有する通信インタフェース、並びに/あるいは筺体内に配設され且つ通信インタフェースと通信可能に結合される制御ロジックを含むことができるアクセサリ装置が開示される。制御ロジックは、アクセサリ通信プロトコルを使用して通信インタフェースを介して移動体コンピューティング装置上で実行されているオペレーティングシステムと通信するように構成される。制御ロジックは、アクセサリ通信プロトコルを使用して通信インタフェースを介して移動体コンピューティング装置上で実行されているアプリケーションと通信するように構成される。
いくつかの実施形態において、制御ロジックは、アクセサリ通信プロトコルを使用してアプリケーション通信プロトコルを指定する情報を通信するように更に構成される。いくつかの実施形態において、制御ロジックは、アクセサリ通信プロトコル以外の標準通信プロトコルを使用してアプリケーション通信プロトコルを指定する情報を通信するように更に構成される。いくつかの実施形態において、アプリケーション通信プロトコル情報は、逆ドメイン名規則を使用して移動体コンピューティング装置に通信される。いくつかの実施形態において、通信インタフェースは無線通信インタフェースを含むことができる。
アクセサリ装置と移動体コンピューティング装置上で実行されているアプリケーションとの間で通信する方法。方法は、アクセサリ装置において動作する。方法は、アクセサリ通信プロトコルを使用して移動体コンピューティング装置にアクセサリ情報を通信すること、セッション識別子、アプリケーションプロトコル識別子又は接続開始コマンドのうちの少なくとも1つを移動体コンピューティング装置から受信すること、並びに/あるいはその後アプリケーション通信プロトコルを使用して移動体コンピューティング装置で実行するアプリケーションと通信することを含むことができる。いくつかの実施形態において、アプリケーション通信プロトコルは、移動体コンピューティング装置に通信されるアプリケーションプロトコル文字列と関連付けられるプロトコルであってもよい。いくつかの実施形態において、アクセサリ情報は、アプリケーションプロトコル文字列、アプリケーションプロトコル文字列に対応するアプリケーションプロトコルインデックス、好適なアプリケーション情報又はアクセサリ通信プロトコル情報のうちの少なくとも1つを含むことができる。いくつかの実施形態において、好適なアプリケーション情報は、移動体コンピューティング装置に通信されるアプリケーションプロトコル文字列と関連付けられるアプリケーション通信プロトコルを使用して通信をサポートするアプリケーションを指定する。いくつかの実施形態において、通信することは、アクセサリにより移動体コンピューティング装置の機能性を制御することを含むことができる。いくつかの実施形態において、アプリケーション通信プロトコル文字列は逆ドメイン名規則に従ってもよい。
別のアクセサリ装置が開示される。アクセサリは、筺体、少なくとも部分的に筺体内に配設され且つ/又は移動体コンピューティング装置と通信可能に結合するように構成される通信インタフェース、アクセサリハードウェア、並びに/あるいは筺体内に配設され且つ通信インタフェース及びアクセサリ専用ハードウェアと通信可能に結合される制御ロジックを含むことができる。制御ロジックは、アクセサリ通信プロトコルを使用して通信インタフェースを介して移動体コンピューティング装置にアプリケーション通信プロトコル情報を通信するように構成される。制御ロジックは、通信インタフェースを介して移動体コンピューティング装置上で実行されているアプリケーションとの通信セッションを確立するように構成される。ここで、通信セッションはアプリケーション通信プロトコルを使用し、アクセサリと移動体コンピューティング装置上で実行されているアプリケーションとの間で通信する。制御ロジックは、アクセサリ通信プロトコルを使用して移動体コンピューティング装置上で実行されているアプリケーションからデータを受信するように構成される。制御ロジックは、移動体コンピューティング装置上で実行されているアプリケーションから受信されるデータに応答して、アクセサリハードウェアの動作を制御するように構成される。
いくつかの実施形態において、通信インタフェースは、無線通信インタフェースを含むことができる。いくつかの実施形態において、制御ロジックは、アプリケーション通信プロトコルを使用してアクセサリハードウェアからハードウェアデータを受信し且つ/又は移動体コンピューティング装置上で実行されているアプリケーションにハードウェアデータを送出するように更に構成される。いくつかの実施形態において、アクセサリハードウェアは含むことができ、ハードウェアデータはセンサを使用して収集されたデータを含むことができる。いくつかの実施形態において、アクセサリハードウェアは電気的装置とのハードウェアインタフェースを含むことができ、ハードウェアデータはハードウェアインタフェースを介して電気的装置から受信されるデータを含むことができる。いくつかの実施形態において、アクセサリハードウェアは電気的装置とのハードウェアインタフェースを含むことができ、移動体コンピューティング装置上で実行されているアプリケーションからのデータはハードウェアインタフェースを使用して電気的装置を制御するためのデータを含む。いくつかの実施形態において、アクセサリハードウェアはディスプレイを含むことができ、移動体コンピューティング装置上で実行されているアプリケーションからのデータは表示可能な情報を含むことができる。
アクセサリ装置と移動装置上で実行されているアプリケーションとの間で通信する別の方法が開示される。この方法は、移動装置上で動作可能である。方法は、アクセサリ通信プロトコルを使用してアクセサリ装置を識別すること、アクセサリ通信プロトコルを使用してアプリケーション通信プロトコルを指定するアクセサリ装置から情報を受信すること、移動体コンピューティング装置においてアプリケーションを実行すること及び/又はアプリケーション通信プロトコルを使用してアプリケーションからアクセサリ装置と通信することを含むことができる。いくつかの実施形態において、方法は、アプリケーションプロトコルが移動体コンピューティング装置においてプロトコルテーブルに一覧表示されるかを判定することを更に含むことができる。プロトコルテーブルは、移動体コンピューティング装置においてアプリケーションによりサポートされるプロトコルを含むことができる。
いくつかの実施形態において、方法は、プロトコルテーブルがアプリケーションプロトコルを含まない場合にアプリケーションプロトコルをサポートするアプリケーションをダウンロードすることを更に含むことができる。いくつかの実施形態において、アプリケーション通信プロトコルを指定するアクセサリ装置からの情報は、逆ドメイン名規則を使用して1つのアプリケーション通信プロトコルを指定する。いくつかの実施形態において、アプリケーション通信プロトコルを指定するアクセサリ装置からの情報は、アプリケーション通信プロトコルと関連付けられる識別子を更に含むことができる。いくつかの実施形態において、アプリケーション通信プロトコルを使用してアクセサリ装置と通信することは、アプリケーション通信プロトコルパケットをアクセサリ通信プロトコルパケットにカプセル化することを更に含むことができる。いくつかの実施形態において、アプリケーション通信プロトコルは、アクセサリ通信プロトコル内に含まれるコマンドを含むことができる。
筺体、少なくとも部分的に筺体内に配設され且つ/又はアクセサリとコマンド及びデータを交換するように構成され且つ少なくとも1つのポートを有する通信インタフェース、筺体内に配設されるメモリ、並びに/あるいは筺体内に配設され且つ/又はメモリ及び通信インタフェースと通信可能に結合される制御ロジックを含むことができる移動体コンピューティング装置が更に開示される。制御ロジックは、アクセサリ通信プロトコルを使用して通信インタフェースを介してアクセサリからアプリケーション通信プロトコルを指定する指示を受信するように構成される。制御ロジックは、メモリに格納されるアプリケーションを実行するように構成される。制御ロジックは、アプリケーション通信プロトコルを使用してアクセサリとアプリケーションとの間の通信を確立するように構成される。いくつかの実施形態において、少なくとも1つのポートは有線ポートであってもよく又は無線ポートであってもよい。いくつかの実施形態において、制御ロジックは、アプリケーションにより指定されたアプリケーション通信プロトコルがメモリに格納されたアプリケーション通信プロトコルと関連付けられるかを判定するように更に構成される。いくつかの実施形態において、制御ロジックは、アクセサリ通信プロトコルを使用してアプリケーション通信プロトコルデータをアクセサリにトンネルするように更に構成される。いくつかの実施形態において、制御ロジックは、アプリケーション通信プロトコルパケットをアクセサリ通信プロトコルパケットとカプセル化し且つアクセサリ通信プロトコルパケットをポートに提供するように更に構成される。
筺体、少なくとも部分的に筺体内に配設され且つ/又はアクセサリとコマンド及びデータを交換するように構成される通信インタフェース、筺体内に配設されるメモリ、並びに/あるいは筺体内に配設され且つ/又はメモリ及び通信インタフェースと通信可能に結合される制御ロジックを含むことができる別の移動体コンピューティング装置が開示される。制御ロジックは、通信インタフェースを介してアクセサリ装置からアプリケーション通信プロトコル情報を受信するように構成される。アプリケーション通信プロトコル情報は、アクセサリによりサポートされるアプリケーション通信プロトコルのIDを含むことができ、且つ/又はアプリケーション通信プロトコル情報は、アクセサリ通信プロトコルを使用してアクセサリから受信される。制御ロジックは、アクセサリ通信プロトコルパケット内にアプリケーション通信プロトコルパケットをカプセル化することによりカプセル化パケットを作成するように構成される。制御ロジックは、通信インタフェースを介してアクセサリにカプセル化パケットを送出するように構成される。いくつかの実施形態において、通信インタフェースは無線通信インタフェースであってもよい。いくつかの実施形態において、移動体コンピューティング装置は、メモリに格納されたプロトコルテーブルを含むことができる。プロトコルテーブルは、移動体コンピューティング装置にインストールされたアプリケーションによりサポートされるアプリケーションプロトコルの一覧を含むことができる。
移動体コンピューティング装置のプロセッサにより実行された場合にプロセッサに方法を実行させるプログラム命令を含むことができるコンピュータ可読媒体が開示される。この方法は、アクセサリ通信プロトコルを使用してアクセサリ装置からアプリケーション通信プロトコル情報を受信すること、アプリケーション通信プロトコルを使用してアクセサリからデータを受信すること及び/又はアクセサリから受信されたデータを操作することを含むことができる。いくつかの実施形態において、方法は、移動体コンピューティング装置のディスプレイにおいて操作したデータの少なくとも一部分を表示することを更に含むことができる。いくつかの実施形態において、方法は、アプリケーション通信プロトコルを使用してアクセサリにコマンドを送出することによりアクセサリの機能性を制御することを更に含むことができる。
アクセサリ装置と移動装置にインストールされたアプリケーションとの間に通信セッションを確立する別の方法が提供される。方法は、移動装置上で動作可能であり、サポートされるアプリケーションプロトコルのリストを収集されたアプリケーションプロトコルのリストと比較すること、サポートアプリケーションプロトコルリストのアプリケーションプロトコルと収集アプリケーションプロトコルリストのアプリケーションプロトコルとの間でマッチングするものが見つけられた場合にマッチングしたアプリケーションプロトコルを指定する情報をアクセサリに通信すること、並びに/あるいはサポートアプリケーションプロトコルリストのアプリケーションプロトコルと収集アプリケーションプロトコルリストのアプリケーションプロトコルとの間でマッチングするものが見つけられなかった場合に収集アプリケーションプロトコルリスト内の少なくとも1つのアプリケーションプロトコルと関連付けられるアプリケーションがダウンロード可能であるアプリケーションストアに移動装置のユーザを誘導することを含むことができる。いくつかの実施形態において、サポートされるアプリケーションプロトコルのリストは、アプリケーションによりサポートされる1つ以上の通信プロトコルを含むことができ、且つ/又は収集されたアプリケーションプロトコルのリストは移動体コンピューティング装置と結合される1つ以上のアクセサリから受信される1つ以上の通信プロトコルを含むことができる。いくつかの実施形態において、サポートアプリケーションプロトコルリストのアプリケーションプロトコルと収集アプリケーションプロトコルリストのアプリケーションプロトコルとの間でマッチングするものが見つけられた場合、アクセサリとの通信セッションを要求する。いくつかの実施形態において、マッチングしたアプリケーションプロトコルを指定する通信情報はセッション識別子を含むことができる。いくつかの実施形態において、サポートアプリケーションプロトコルリストのアプリケーションプロトコルと収集アプリケーションプロトコルリストのアプリケーションプロトコルとの間でマッチングするものが見つけられた場合、マッチングしたアプリケーションプロトコルを使用してアクセサリと通信する。いくつかの実施形態において、アプリケーションストアは、インターネットを使用するアプリケーションストアであってもよい。
移動体コンピューティング装置のプロセッサにより実行された場合にプロセッサに方法を実行させるプログラム命令を含むコンピュータ可読媒体が提供される。方法は、サポートプロトコルリストのサポートされるアプリケーションプロトコル識別子が収集プロトコルリストのアプリケーションプロトコル識別子とマッチングするかを判定すること、並びに/あるいはサポートされるアプリケーションプロトコルと収集されたアプリケーションプロトコルのリストのアプリケーションプロトコルとの間でマッチングするものを見つけることに応答してサブ方法を実行することを含むことができる。サブ方法は、移動体コンピューティング装置と移動体コンピューティング装置に結合されるアクセサリとの間の通信セッションを開始すること、サポートされるアプリケーションプロトコルを指定する情報をアクセサリに通信すること及び/又はサポートされるアプリケーションプロトコルを使用して移動体コンピューティング装置からアクセサリと通信することを含む。いくつかの実施形態において、収集プロトコルリストは、アクセサリと互換性のあるアプリケーションプロトコルを表す1つ以上の通信プロトコル識別子を含むことができ、且つ/又はサポートプロトコルリストは、移動体コンピューティング装置にインストールされたアプリケーションと互換性のあるアプリケーションプロトコルを表す1つ以上の通信プロトコル識別子を含むことができる。いくつかの実施形態において、サポートされるアプリケーションプロトコルは、アクセサリ通信プロトコルと異なってもよい。いくつかの実施形態において、更にプログラム命令は、サポートされるアプリケーションプロトコルと収集されたアプリケーションプロトコルのリストのアプリケーションプロトコルとの間でマッチングするものを見つけられないことに応答して収集プロトコルリストのアプリケーションプロトコルとマッチングするプロトコルをサポートするアプリケーションをプロセッサにダウンロードさせることができる。
移動体コンピューティング装置において動作し且つアクセサリ装置からアプリケーションプロトコル識別子を受信すること、並びに/あるいは受信したアプリケーションプロトコル識別子が移動体コンピューティング装置においてメモリに格納されるプロトコルテーブル内に一覧表示されるアプリケーションプロトコル識別子にマッチングするかを判定し、その後アプリケーション通信プロトコルを使用してアクセサリと通信することを含むことができる別の方法が提供される。ここで、受信したアプリケーションプロトコル識別子は、逆ドメイン名形式のデータ文字列を含むことができ、アプリケーション通信プロトコルと関連付けられる。いくつかの実施形態において、プロトコルテーブルは、移動体コンピューティング装置において実行可能なアプリケーションと関連付けられる1つ以上のアプリケーションプロトコル識別子を含むことができる。いくつかの実施形態において、方法は、受信したアプリケーションプロトコル識別子がプロトコルテーブルのアプリケーションプロトコル識別子とマッチングする場合にプロトコルテーブルのアプリケーションプロトコル識別子と関連付けられるアプリケーションを実行することを更に含むことができる。いくつかの実施形態において、方法は、受信したアプリケーションプロトコル識別子とマッチングする関連するアプリケーションプロトコル識別子を有するアプリケーションをダウンロードすることを更に含むことができる。
筺体、少なくとも部分的に筺体内に配設され且つ/又はアクセサリとコマンド及びデータを交換するように構成される通信インタフェース、筺体内に配設され且つサポートアプリケーションプロトコルリストを維持するように構成されるメモリ、並びに/あるいは筺体内に配設され且つ/又はメモリ及び通信インタフェースと通信可能に結合される制御ロジックを含む移動体コンピューティング装置が更に開示される。いくつかの実施形態において、制御ロジックは、アクセサリによりサポートされるアプリケーション通信プロトコルを識別する情報を通信インタフェースを介してアクセサリから受信するように構成される。いくつかの実施形態において、制御ロジックは、アクセサリによりサポートされるアプリケーション通信プロトコルがサポートされるアプリケーションプロトコルのリストで識別されるプロトコルと一致するかを判定するように構成される。サポートされるアプリケーションプロトコルのリストは、移動装置にインストールされたアプリケーションによりサポートされる1つ以上のプロトコルを含むことができる。いくつかの実施形態において、制御ロジックは、アクセサリによりサポートされるアプリケーションプロトコルとサポートされるアプリケーションプロトコルのリストで識別されるプロトコルとの間で相関性が判定される場合に移動体コンピューティング装置を使用してマッチングしたアプリケーションプロトコルを指定する情報をアクセサリに通信するように構成される。いくつかの実施形態において、制御ロジックはマッチングしたアプリケーションプロトコルを使用してアクセサリと通信するように構成される。
移動体コンピューティング装置プロトコルを使用してアクセサリからアプリケーションプロトコル情報を受信することを含むことができる別の方法が更に提供される。アプリケーションプロトコル情報は、アクセサリと互換性のある少なくとも1つのアプリケーションプロトコルを識別する。方法は、アプリケーションプロトコルがサポートプロトコルリスト内に一覧表示されるプロトコルとマッチングするかを判定することを更に含むことができる。サポートプロトコルリストは、少なくとも移動装置にインストールされたアプリケーションによりサポートされる1つ以上の通信プロトコルを含むことができ、且つ/又はサポートプロトコルリスト内に一覧表示される各プロトコルは、アプリケーションと関連付けられる。アプリケーションプロトコルがサポートプロトコルリスト中のプロトコルとマッチングする場合、方法は、サポートリスト中のマッチングしたプロトコルと関連付けられるアプリケーションを実行することを更に含むことができる。いくつかの実施形態において、アプリケーションプロトコルがサポートプロトコルリスト中のプロトコルとマッチングしない場合、サポートプロトコルリスト中のプロトコルと関連付けられるアプリケーションをインターネットからダウンロードする。
移動体コンピューティング装置においてアクセサリからアプリケーションプロトコルのIDを含むことができる情報を受信すること、移動体コンピューティング装置においてメモリに格納され且つアプリケーションと関連付けられる少なくとも1つのアプリケーションプロトコルを含むことができるサポートプロトコルテーブルに一覧表示されるプロトコルとアプリケーションプロトコルとを比較すること、並びに/あるいはアプリケーションプロトコルがサポートプロトコルテーブルに一覧表示されるプロトコルとマッチングする場合に移動体コンピューティング装置においてアプリケーションプロトコルと関連付けられるアプリケーションを実行することを含むことができる別の方法が提供される。いくつかの実施形態において、情報はアプリケーションプロトコルをサポートする好適なアプリケーションのIDを含むことができ、且つ/又はアプリケーションプロトコルがサポートプロトコルテーブルに一覧表示されるプロトコルとマッチングしない場合に好適なアプリケーションをダウンロードする。いくつかの実施形態において、アプリケーションプロトコルを識別する情報は、逆ドメイン名形式を使用してアプリケーションプロトコルを識別する。いくつかの実施形態において、方法はアプリケーションプロトコルを使用してアクセサリと通信することを更に含むことができる。いくつかの実施形態において、アプリケーションプロトコルを識別する情報は、移動体コンピューティング装置プロトコルに従ってフォーマットされる。
筺体、少なくとも部分的に筺体内に配設され且つ/又はアクセサリとコマンド及びデータを交換するように構成される通信インタフェース、筺体内に配設され且つアプリケーションと互換性のあるプロトコルを一覧表示するサポートアプリケーションプロトコルリストを含むメモリであり、サポートアプリケーションプロトコルが移動体コンピューティング装置にインストールされたアプリケーションによりサポートされるアプリケーションプロトコルを含むことができるメモリ、並びに/あるいは筺体内に配設され且つ/又はメモリ及び通信インタフェースと通信可能に結合される制御ロジックを含む移動体コンピューティング装置が提供される。制御ロジックは、アクセサリによりサポートされるアプリケーションプロトコルを識別するアクセサリからメッセージを受信し、アプリケーションプロトコルがサポートアプリケーションプロトコルリスト内に格納されるサポートされるアプリケーションプロトコルとマッチングするかを判定し、且つ/又はマッチングするものが見つけられた場合にアプリケーションプロトコルとマッチングしたサポートされるアクセサリと関連付けられるアプリケーションを実行するように構成される。いくつかの実施形態において、アクセサリから受信されるメッセージは、アプリケーションプロトコルをサポートするアプリケーションが見つけられるインターネットアドレスを識別する。いくつかの実施形態において、方法はインターネットアドレスからアプリケーションをダウンロードすることを更に含むことができる。いくつかの実施形態において、方法は移動体コンピューティング装置においてアプリケーションをインストールすること及びアプリケーションを実行することを更に含むことができる。
筺体、少なくとも部分的に筺体内に配設され且つ/又はアクセサリとコマンド及びデータを交換するように構成され且つ第1の通信ポート及び第2の通信ポートを有する通信インタフェース、筺体内に配設されるメモリ、並びに/あるいは筺体内に配設され且つメモリ及び通信インタフェースと通信可能に結合される制御ロジックを含む移動通信装置が開示される。制御ロジックは、第1のアプリケーション通信プロトコルを使用して第1の通信ポートを介して第1のアクセサリと通信し且つ/又は第2のアプリケーション通信プロトコルを使用して第2の通信ポートを介して第2のアクセサリと通信するように構成される。いくつかの実施形態において、第1の通信ポート又は第2の通信ポートの少なくとも一方は無線通信ポートを含むことができる。いくつかの実施形態において、第1のアプリケーション通信プロトコル及び第2のアプリケーション通信プロトコルは異なる。いくつかの実施形態において、制御ロジックは、アクセサリ通信プロトコルを使用して第1の通信ポートを介して第1のアクセサリと通信し且つ第2のアクセサリ通信ポートを介して第2のアクセサリと通信するように更に構成される。いくつかの実施形態において、制御ロジックは、第1のポートを介して第1のアクセサリと通信するために第1の通信セッションを確立するように更に構成される。いくつかの実施形態において、制御ロジックは、第1のポートを介して第2のアクセサリと通信するために第2の通信セッションを確立するように更に構成される。いくつかの実施形態において、通信インタフェースは第3の通信ポートを含むことができ、制御ロジックは第3のアプリケーション通信プロトコルを使用して第3の通信ポートを介して第3のアクセサリと通信するように更に構成される。
移動体コンピューティング装置のプロセッサにより実行された時にプロセッサに方法を実行させるプログラム命令を含むコンピュータ可読媒体。この方法は、第1のアクセサリと通信するために第1の通信セッションを要求すること、第1の通信セッションのセッション識別子を受信すること、第1のアプリケーションプロトコルを使用して第1の通信セッションを介して第1のアクセサリと通信すること、第2のアクセサリと通信するために第2の通信セッションを要求すること、第2の通信セッションのセッション識別子を受信すること、並びに/あるいは第2のアプリケーションプロトコルを使用して第2の通信セッションを介して第2のアクセサリと通信することを含むことができる。いくつかの実施形態において、第1のアプリケーションプロトコル及び第2のアプリケーションプロトコルは異なる。いくつかの実施形態において、第1のアプリケーションプロトコル及び第2のアプリケーションプロトコルは同一である。いくつかの実施形態において、プログラム命令は、第1のアクセサリが移動体コンピューティング装置と通信可能に結合されるのか又は第2のアクセサリが移動体コンピューティング装置と通信可能に結合されるのかの判定をプロセッサに更に行なわせる。
筺体、少なくとも部分的に筺体内に配設され且つ/又は第1のアクセサリ及び第2のアクセサリとコマンド及びデータを交換するように構成され且つ第1の通信ポート及び第2の通信ポートを有する通信インタフェース、筺体内に配設されるメモリ、並びに/あるいは筺体内に配設され且つ/又はメモリ及び通信インタフェースと通信可能に結合される制御ロジックを含む移動通信装置。制御ロジックは、制御ロジックにより実行する第1のアプリケーションと第1の通信ポートとの間に第1の通信セッションを確立し、第1のアプリケーションプロトコルを使用して第1の通信セッションを介して第1のアクセサリと通信し、制御ロジックにより実行する第2のアプリケーションと第2の通信ポートとの間に第2の通信セッションを確立し、且つ/又は第2のアプリケーションプロトコルを使用して第2の通信セッションを介して第2のアクセサリと通信するように構成される。いくつかの実施形態において、制御ロジックは、アクセサリ通信プロトコルを使用して第1のアプリケーション通信プロトコルメッセージに対するトンネルを提供するように更に構成される。いくつかの実施形態において、アクセサリ通信プロトコルは第1のアプリケーション通信プロトコルと異なってもよい。いくつかの実施形態において、制御ロジックは、アクセサリ通信プロトコルを使用して第2のアプリケーション通信プロトコルメッセージに対するトンネルを提供するように更に構成される。いくつかの実施形態において、アクセサリ通信プロトコルは第2のアプリケーション通信プロトコルと異なってもよい。
移動体コンピューティング装置において実行する別の方法が提供される。方法は、アクセサリが通信ポートにおいて移動体コンピューティング装置と通信可能に結合されるという指示を受信すること、アクセサリがアクセサリプロトコル及びアプリケーションプロトコルの双方を使用する移動体コンピューティング装置との通信をサポートすることを判定すること、通信ポートを介する移動体コンピューティング装置上で実行されているアプリケーションと通信プロトコルを介するアクセサリとの通信セッションを確立すること、並びに/あるいは通信セッションを使用してアプリケーションプロトコルメッセージであるメッセージをアプリケーションからアクセサリに送出することを含むことができる。いくつかの実施形態において、アクセサリプロトコル及びアプリケーションプロトコルは異なる。いくつかの実施形態において、方法は、アクセサリがアプリケーションプロトコルをサポートするという指示をアクセサリから受信することを含むことができる。いくつかの実施形態において、方法は、アプリケーションプロトコルメッセージをアクセサリプロトコルメッセージ内にカプセル化することを更に含むことができる。
移動体コンピューティング装置上で実行されているアプリケーションと移動体コンピューティング装置と通信しているアクセサリとの間に通信セッションを確立する方法が提供される。方法は、移動体コンピューティング装置において実行可能であり、アクセサリに関連する情報に対する要求をアプリケーションから受信すること、アクセサリと互換性のある少なくとも1つのアプリケーション通信プロトコルの識別子を含むことができるアクセサリ情報をアプリケーションに提供すること、アプリケーション通信プロトコルを使用して通信するためのアクセサリとアプリケーションとの間の通信セッションに対する要求を受信すること、アプリケーション通信プロトコルに従ってフォーマットされるメッセージをアプリケーションから受信すること、アクセサリ通信プロトコルラッパーによりメッセージをラップすること、並びに/あるいはアプリケーション通信プロトコルとは異なるアクセサリ通信プロトコルに従って通信されるメッセージをアクセサリに通信することを含むことができる。いくつかの実施形態において、アクセサリ通信プロトコルラッパーはトンネルコマンドを含むことができる。いくつかの実施形態において、少なくとも1つのアプリケーション通信プロトコルの識別子は逆ドメイン名フォーマットで提供される識別子を含むことができる。いくつかの実施形態において、方法は、アクセサリ通信プロトコルに従ってフォーマットされるメッセージをアクセサリから受信すること、アクセサリ通信プロトコルラッパーをメッセージから取り除くこと、並びに/あるいはアプリケーション通信プロトコルに従って通信されるメッセージをアプリケーションに送出することを更に含むことができる。いくつかの実施形態において、方法は、アクセサリ接続性に対する通信インタフェースを監視すること、並びに/あるいはアクセサリが通信インタフェースと通信可能に結合される場合にアクセサリ機能を含み且つアクセサリと互換性のある少なくとも1つのアプリケーション通信プロトコルの識別子を含むことができる機能メッセージを受信することを更に含むことができる。いくつかの実施形態において、機能メッセージはアクセサリ通信プロトコルに従ってフォーマットされる。
移動体コンピューティング装置は、筺体、少なくとも部分的に筺体内に配設され且つ/又はアクセサリ通信プロトコルを使用してアクセサリとコマンド及びデータを交換するように構成される通信インタフェース、筺体内に配設されるメモリ、並びに/あるいは筺体内に配設され且つ/又はメモリ及び通信インタフェースと通信可能に結合され且つバックグラウンド処理であるアクセサリマネージャ及びアプリケーションを実行するように構成される制御ロジックを含むことができる。アクセサリマネージャとして実行する制御ロジックは、通信インタフェースと結合されるアクセサリに対する通信インタフェースを監視し、アクセサリが通信インタフェースと結合された場合にアクセサリ通信プロトコルを使用してアクセサリから互換性のあるアプリケーションプロトコルを含むアクセサリ機能情報を受信し、アクセサリ通信プロトコルラッパーによりラップされるアプリケーション通信プロトコルフォーマットメッセージをアクセサリから受信し、アクセサリ通信プロトコルラッパーをメッセージから除去し、且つ/又はアプリケーションにメッセージを通信するように構成される。いくつかの実施形態において、アクセサリ機能は、アクセサリ通信プロトコルを使用して受信される。いくつかの実施形態において、アクセサリマネージャとして実行する制御ロジックは、データが入力データストリームから読み出されるように入力データストリームを確立するように更に構成される。いくつかの実施形態において、アクセサリマネージャとして実行する制御ロジックは、入力データストリームを使用して、アクセサリから受信されたメッセージをアプリケーションに通信する。いくつかの実施形態において、アクセサリマネージャとして実行する制御ロジックは、アプリケーションからアプリケーション通信プロトコルフォーマットメッセージを受信し、アクセサリ通信プロトコルラッパーによりアクセサリ通信プロトコルメッセージをラップし且つ/又はアクセサリにメッセージを通信するように更に構成される。いくつかの実施形態において、アクセサリマネージャとして実行する制御ロジックは、データがアプリケーションにより出力データストリームに書き込まれ且つアクセサリに送出されるように出力データストリームを確立するように更に構成される。いくつかの実施形態において、アクセサリマネージャとして実行する制御ロジックは出力データストリームから受信されたメッセージをアクセサリに通信する。
別の方法が提供される。この方法は、アクセサリがアクセサリインタフェースと通信可能に結合されているという指示に対して移動体コンピューティング装置のアクセサリインタフェースを監視すること、アクセサリがアクセサリインタフェースと通信可能に結合される場合にアクセサリ通信プロトコルを使用して受信可能であり且つ/又はアクセサリと互換性のある1つ以上のアプリケーション通信プロトコルを示す情報を含むことができる機能情報をアクセサリから受信すること、移動体コンピューティング装置上で実行されているアプリケーションに対して入力データストリームを確立すること(ここで、アクセサリ通信プロトコルラッパーにおいてラップされるアクセサリから受信されたアプリケーションメッセージは、アクセサリ通信プロトコルラッパーから取り除かれ且つ入力データストリームを使用してアプリケーションに書き込まれる)、並びに/あるいはアプリケーションに対して出力データストリームを確立すること(ここで、アプリケーションからの出力データストリームに書き込まれたアプリケーションメッセージは、アクセサリ通信プロトコルラッパーにラップされ且つアクセサリインタフェースを介してアクセサリに送出される)を含むことができる。いくつかの実施形態において、アクセサリインタフェースは無線通信インタフェースを含むことができる。いくつかの実施形態において、1つ以上のアプリケーション通信プロトコルを示す情報は、逆ドメイン名フォーマットを使用して提供される。
移動体コンピューティング装置上で実行する方法が更に提供される。方法は、アプリケーションプロトコルを使用して移動体コンピューティング装置上で実行されているアプリケーションから移動体コンピューティング装置と外部アクセサリとの間の通信セッションに対する要求を受信すること、アプリケーションプロトコルがアクセサリによりサポートされるかを判定すること、アプリケーションプロトコルがアクセサリによりサポートされる場合にアプリケーションプロトコルを使用してアクセサリと通信するために入力ストリーム及び出力ストリームをアプリケーションに提供すること、アプリケーションプロトコルに従ってフォーマットされるメッセージを出力ストリームを介してアプリケーションから受信すること、メッセージをアクセサリプロトコルメッセージ内にラップすること、並びに/あるいはメッセージをアクセサリに送出することを含むことができる。
いくつかの実施形態において、判定することは、ルックアップテーブルにおいてアプリケーションプロトコルをルックアップすることを更に含むことができる。いくつかの実施形態において、方法は、アクセサリプロトコルメッセージ内にラップされるアプリケーションプロトコルメッセージであるメッセージをアクセサリから受信すること、アプリケーションプロトコルメッセージからアクセサリプロトコルラッパーをアンラップすること、並びに/あるいはアプリケーションプロトコルメッセージをアプリケーションの入力ストリームに書き込むことを含むことができる。
移動体コンピューティング装置上で実行する別の方法が提供される。方法は、第1の通信プロトコルを使用する第1のアプリケーションと第1のアクセサリとの間の通信を提供する第1のアプリケーションと第1のアクセサリとの間の第1の通信セッションを開くこと、第1のアプリケーションから第1のメッセージを受信すること、アクセサリプロトコルラッパー内にラップされるアクセサリに第1のメッセージを送出すること、第2の通信プロトコルを使用して第1のアプリケーションと第1のアクセサリとの間の通信を提供する第2のアプリケーションと第1のアクセサリとの間の第2の通信セッションを開くこと、並びに/あるいは第2のアプリケーションから第2のメッセージを受信し且つアクセサリプロトコルラッパー内にラップされるアクセサリに第2のメッセージを送出することを含む。尚、第1のアプリケーションプロトコル及び第2のアプリケーションプロトコルは異なる。
移動体コンピューティング装置のプロセッサにより実行された場合にプロセッサに方法を実行させるプログラム命令を含むコンピュータ可読媒体が提供される。方法は、移動体コンピューティング装置において実行するバックグラウンド処理であってもよく且つ移動体コンピューティング装置上で実行されているアプリケーションと移動体コンピューティング装置と通信可能に結合されるアクセサリとの間に通信接続性を提供するアクセサリマネージャからアクセサリ情報を要求すること、アクセサリが移動体コンピューティング装置と通信可能に結合される場合にアクセサリと互換性のある少なくとも1つのアプリケーション通信プロトコルを指定する1つ以上のプロトコル識別子及び1つのアクセサリ識別子をアクセサリマネージャから受信すること、アプリケーションが少なくとも1つのアプリケーションプロトコルと互換性があるかを判定すること、アプリケーションが互換性がある場合にアプリケーション通信プロトコルを使用してアクセサリマネージャを介してアクセサリと通信するためのセッションを開くこと、並びに/あるいはアプリケーション通信プロトコルを使用してアクセサリと通信することを含むことができる。いくつかの実施形態において、プロトコル識別子は逆ドメイン名規則を使用してフォーマットされる。いくつかの実施形態において、アクセサリと通信することは、アクセサリマネージャから出力ストリームを受信すること及び/又はアプリケーション通信プロトコルに従って入力ストリームにデータを書き込むことを含むことができる。いくつかの実施形態において、アクセサリと通信することは、アクセサリマネージャから入力ストリームを受信すること及び/又はアプリケーション通信プロトコルに従ってフォーマットされたデータを入力ストリームから受信することを含むことができる。
アプリケーションがアプリケーションマネージャを使用してアクセサリとの通信を確立する方法。方法は、アクセサリと互換性のあるアプリケーションプロトコルを指定するアプリケーションマネージャから指示を受信すること、アプリケーションプロトコルを使用してアクセサリと通信するためにアプリケーションマネージャから入力ストリーム及び出力ストリームを受信すること、並びに/あるいはその後アクセサリに対するアプリケーションプロトコルメッセージを出力ストリームに書き込むことを含むことができる。いくつかの実施形態において、方法はアプリケーションによりサポートされるアプリケーションプロトコルの指示を含むことができるアプリケーションプロトコル情報をアプリケーションマネージャに送出することを含むことができる。いくつかの実施形態において、アクセサリと互換性のあるアプリケーションプロトコルは、アプリケーションにより送出されるアプリケーションプロトコル情報により示されるアプリケーションプロトコルであってもよい。いくつかの実施形態において、アプリケーションプロトコル情報により示されるアプリケーションプロトコルは、逆ドメイン名規則を使用してアプリケーションプロトコルを示す。
移動体コンピューティング装置上で実行されているアプリケーションにより実行される方法が開示される。方法は、移動体コンピューティング装置と通信可能に結合されるアクセサリによりサポートされる1つ以上のアプリケーションプロトコルを示す情報を含むことができるアクセサリ情報をアプリケーションマネージャから要求すること、アクセサリによりサポートされるアプリケーションプロトコルがアプリケーションによりサポートされるアプリケーションプロトコルとマッチングするかを判定すること、アプリケーションプロトコルがマッチングした場合にアプリケーションプロトコルを使用してアクセサリと通信するために入力ストリーム及び出力ストリームを要求すること、入力ストリーム及び出力ストリームを受信すること、並びに/あるいはその後アクセサリに対するアプリケーションプロトコルメッセージを出力ストリームに書き込むことを含む。いくつかの実施形態において、方法は入力ストリームを使用してアクセサリからアプリケーションプロトコルメッセージを読み出すことを含むことができる。いくつかの実施形態において、アクセサリ情報は逆ドメイン名規則を使用してアプリケーションプロトコルを示す。いくつかの実施形態において、アクセサリ情報はテーブルに格納され、アクセサリ情報はアクセサリ情報と関連付けられるメタデータの記憶場所に対するポインタとなる。
移動体コンピューティング装置上で実行されているアプリケーションにより実行される方法が提供される。方法は、移動体コンピューティング装置と結合されるアクセサリによりサポートされるアプリケーションプロトコルを示す情報を含むテーブルにアクセスすること、アプリケーションによりサポートされるアプリケーションプロトコルがテーブルのアプリケーションプロトコルとマッチングするかを判定すること、アプリケーションプロトコルがマッチングする場合にマッチングしたアプリケーションを使用してアクセサリと通信するための通信セッションを開くこと、入力ストリーム及び出力ストリームを受信すること、並びに/あるいはその後アクセサリに対するアプリケーションプロトコルメッセージを出力ストリームに書き込むことを含む。いくつかの実施形態において、テーブルはアクセサリと関連付けられる複数のアプリケーションプロトコルを含むことができ、且つ/又はアプリケーションは、アプリケーションによりサポートされるアプリケーションプロトコルがテーブルの任意のアプリケーションプロトコルとマッチングするかを判定する。いくつかの実施形態において、方法は入力ストリームを使用してアクセサリからアプリケーションプロトコルメッセージを読み出すことを更に含むことができる。いくつかの実施形態において、アクセサリ情報は、逆ドメイン名規則を使用してフォーマットされるアプリケーションプロトコルを示す。
本明細書において、回路、論理モジュール、プロセッサ及び/又は他の構成要素については種々の動作を実行するように「構成される」ものとして説明できる。実現例に依存して、そのような構成が特定の構成要素の設計、セットアップ、相互接続及び/又はプログラミングを通して達成されること、並びに実現例に依存して、構成された構成要素が異なる動作を行なうように再構成可能であっても再構成可能でなくてもよいことは、当業者には理解されるだろう。例えばプログラマブルプロセッサは、適切な実行可能コードを提供することにより構成される。専用論理回路は、論理ゲート及び他の回路素子を適切に接続することにより構成される。
上述の実施形態は、特定のハードウェア及びソフトウェアコンポーネントを参照したが、ハードウェア及び/又はソフトウェアコンポーネントの種々の組合せが使用されてもよいこと、並びにハードウェアで実現されるものとして説明した特定の動作がソフトウェアで実現されてもよいこと又はその逆も可能であることが当業者には理解されるだろう。
本発明の種々の機能を組み込むコンピュータプログラムは、種々のコンピュータ可読記憶媒体上で符号化される。適切な媒体には、磁気ディスク、磁気テープ、コンパクトディスク(CD)又はDVD(デジタル汎用ディスク)等の光記憶媒体及びフラッシュメモリ等が含まれる。プログラムコードにより符号化されるコンピュータ可読記憶媒体は、互換性のある装置とパッケージ化されるか又は他の装置とは別個に提供される。更にプログラムコードは、符号化され且つ有線光学式及び/又はインターネットを含む種々のプロトコルに準拠する無線ネットワークを介して送信され、それにより例えばインターネットダウンロードを介する配信を可能にする。
例及び/又は詳細が単一の実施形態に関連して本開示において説明されるが、そのような例又は詳細は、本明細書で説明される任意の実施形態と関連して使用可能である。
従って、本発明が特定の実施形態に関して説明されたが、本発明は、以下の特許請求の範囲の範囲内の全ての変形及び等価物を範囲に含むことを意図する。

Claims (23)

  1. アクセサリ装置と、移動体コンピューティング装置上で実行されているアプリケーションとの間で通信するための、前記アクセサリ装置において動作する方法であって、
    アクセサリ通信プロトコルを使用して、少なくとも1つのアプリケーション通信プロトコルを指定する情報を前記移動体コンピューティング装置と通信する工程と、
    前記アクセサリ通信プロトコルを使用して、前記移動体コンピューティング装置上で実行されているアプリケーションと通信する工程と
    を備える方法。
  2. 前記アクセサリ通信プロトコルを使用して、前記移動体コンピューティング装置において実行されているオペレーティングシステムと通信する工程を更に備えることを特徴とする請求項1記載の方法。
  3. 前記移動体コンピューティング装置上で実行されているアプリケーションと通信する工程は、アクセサリ通信プロトコルパケット内のアプリケーション通信プロトコルパケットをトンネルする工程を含むことを特徴とする請求項1記載の方法。
  4. 前記移動体コンピューティング装置上で実行されている前記アプリケーションからアプリケーション通信プロトコルコマンドを受信する工程と、
    該受信に応答して前記アクセサリ装置の状態を変更する工程と
    を更に備えることを特徴とする請求項1記載の方法。
  5. 前記移動体コンピューティング装置上で実行されている前記アプリケーションからのコマンドに応答して、前記移動体コンピューティング装置上で実行されている前記アプリケーションにデータを送信する工程を更に備え、
    前記データは前記アプリケーション通信プロトコルを使用して送信され、前記コマンドは前記アクセサリ通信プロトコルを使用して受信される
    ことを特徴とする請求項1記載の方法。
  6. 少なくとも1つのアプリケーション通信プロトコルを指定する前記情報は、逆ドメイン名規則に従って提供されることを特徴とする請求項1記載の方法。
  7. 前記アクセサリ通信プロトコルを使用して、前記アクセサリにより前記移動体コンピューティング装置の機能を制御する工程を更に備えることを特徴とする請求項1記載の方法。
  8. 筺体と、
    少なくとも部分的に前記筺体内に配設され、移動体コンピューティング装置とコマンド及びデータを交換するように構成され、少なくとも1つのポートを有する通信インタフェースと、
    前記筺体内に配設され、前記通信インタフェースと通信可能に結合される制御ロジックであって、
    アクセサリ通信プロトコルを使用して、前記通信インタフェースを介して前記移動体コンピューティング装置上で実行されているオペレーティングシステムと通信し、
    アクセサリ通信プロトコルを使用して、前記通信インタフェースを介して前記移動体コンピューティング装置上で実行されているアプリケーションと通信するように構成された制御ロジックと
    を備えることを特徴とするアクセサリ装置。
  9. 前記制御ロジックは、前記アクセサリ通信プロトコルを使用して、前記アプリケーション通信プロトコルを指定する情報を通信するように構成されていることを特徴とする請求項8記載のアクセサリ装置。
  10. 前記制御ロジックは、前記アクセサリ通信プロトコル以外の標準通信プロトコルを使用して、前記アプリケーション通信プロトコルを指定する情報を通信するように構成されていることを特徴とする請求項8記載のアクセサリ装置。
  11. 前記アプリケーション通信プロトコルを指定する情報は、逆ドメイン名規則を使用して前記移動体コンピューティング装置と通信されることを特徴とする請求項9記載のアクセサリ装置。
  12. 前記通信インタフェースは、無線通信インタフェースを含むことを特徴とする請求項9記載のアクセサリ装置。
  13. アクセサリ装置と、移動体コンピューティング装置上で実行されているアプリケーションとの間で通信するための、前記アクセサリ装置において動作する方法であって、
    アクセサリ通信プロトコルを使用して、アプリケーションプロトコル文字列、前記アプリケーションプロトコル文字列に対応するアプリケーションプロトコル・インデックス、好適なアプリケーション情報又はアクセサリ通信プロトコル情報のうち少なくとも1つを含むアクセサリ情報を前記移動体コンピューティング装置と通信する工程と、
    セッション識別子、アプリケーションプロトコル識別子又は接続開始コマンドのうちの少なくとも1つを移動体コンピューティング装置から受信する工程と、
    前記移動体コンピューティング装置と通信される前記アプリケーションプロトコル文字列と関連付けられるプロトコルであるアプリケーション通信プロトコルを使用して、前記移動体コンピューティング装置上で実行されている前記アプリケーションとその後に通信する工程と
    を備えることを特徴とする方法。
  14. 前記好適なアプリケーション情報は、前記移動体コンピューティング装置と通信される前記アプリケーションプロトコル文字列と関連付けられたアプリケーション通信プロトコルを使用した通信をサポートする、アプリケーションを指定することを特徴とする請求項13記載の方法。
  15. 前記通信する工程は、前記アクセサリにより前記移動体コンピューティング装置の機能を制御する工程を含むことを特徴とする請求項13記載の方法。
  16. 前記アプリケーションプロトコル文字列は逆ドメイン名規則に従うことを特徴とする請求項13記載の方法。
  17. 筺体と、
    少なくとも部分的に前記筺体内に配設され、移動体コンピューティング装置と通信可能に結合するように構成された通信インタフェースと、
    アクセサリハードウェアと、
    前記筺体内に配設され、前記通信インタフェース及び前記アクセサリ専用ハードウェアと通信可能に結合された制御ロジックであって、
    アクセサリ通信プロトコルを使用して、前記通信インタフェースを介して移動体コンピューティング装置とアプリケーション通信プロトコル情報を通信し、
    前記通信インタフェースを介して前記移動体コンピューティング装置上で実行されているアプリケーションとの通信セッションであって、前記アクセサリと前記移動体コンピューティング装置上で実行されている前記アプリケーションとの間の通信に前記アプリケーション通信プロトコルを使用する、通信セッションを確立し、
    前記アクセサリ通信プロトコルを使用して、前記移動体コンピューティング装置上で実行されている前記アプリケーションからデータを受信し、
    前記移動体コンピューティング装置上で実行されている前記アプリケーションから受信した前記データに応答して、前記アクセサリハードウェアの動作を制御するように構成された制御ロジックと
    を備えることを特徴とするアクセサリ装置。
  18. 前記通信インタフェースは、無線通信インタフェースを含むことを特徴とする請求項17記載のアクセサリ装置。
  19. 前記制御ロジックは、前記アクセサリハードウェアからハードウェアデータを受信し、前記アプリケーション通信プロトコルを使用して前記移動体コンピューティング装置上で実行されている前記アプリケーションに前記ハードウェアデータを送信する、ように更に構成されていることを特徴とする請求項17記載のアクセサリ装置。
  20. 前記アクセサリハードウェアはセンサを含み、前記ハードウェアデータは前記センサを使用して収集されるデータを含むことを特徴とする請求項19記載のアクセサリ装置。
  21. 前記アクセサリハードウェアは電気的装置に対するハードウェアインタフェースを含み、前記ハードウェアデータは前記ハードウェアインタフェースを介して前記電気的装置から受信されるデータを含む、ことを特徴とする請求項19記載のアクセサリ装置。
  22. 前記アクセサリハードウェアは、電気的装置に対するハードウェアインタフェースを含み、前記移動体コンピューティング装置上で実行されている前記アプリケーションからの前記データは、前記ハードウェアインタフェースを使用して前記電気的装置を制御するためのデータを含むことを特徴とする請求項17記載のアクセサリ装置。
  23. 前記アクセサリハードウェアはディスプレイを含み、前記移動体コンピューティング装置上で実行されている前記アプリケーションからの前記データは表示可能情報を含むことを特徴とする請求項17記載のアクセサリ装置。
JP2010058265A 2009-03-16 2010-03-15 アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信 Active JP4842383B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16064409P 2009-03-16 2009-03-16
US16060109P 2009-03-16 2009-03-16
US61/160,601 2009-03-16
US61/160,644 2009-03-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011220451A Division JP5599768B2 (ja) 2009-03-16 2011-10-04 アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信

Publications (2)

Publication Number Publication Date
JP2010233217A true JP2010233217A (ja) 2010-10-14
JP4842383B2 JP4842383B2 (ja) 2011-12-21

Family

ID=42153714

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010058265A Active JP4842383B2 (ja) 2009-03-16 2010-03-15 アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信
JP2011220451A Active JP5599768B2 (ja) 2009-03-16 2011-10-04 アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011220451A Active JP5599768B2 (ja) 2009-03-16 2011-10-04 アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信

Country Status (12)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014517951A (ja) * 2011-04-13 2014-07-24 コンパーニュ・アンデュストリエル・エ・フィナンシエール・ダンジェニエリ・“インジェニコ” メッセージを多重送信する方法、ディバイス及び対応するプログラム
JP2014525157A (ja) * 2011-06-06 2014-09-25 アップル インコーポレイテッド アクセサリと複数のデバイスとの相互動作を促進するための技術
JP2016502188A (ja) * 2013-03-11 2016-01-21 小米科技有限▲責▼任公司Xiaomi Inc. デスクトップの表示方法、装置、プログラム及び記録媒体
JP2018120403A (ja) * 2017-01-25 2018-08-02 奥出えりか 防犯システム、防犯方法、および、防犯プログラム

Families Citing this family (244)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066862B (zh) 2007-09-24 2022-11-25 苹果公司 电子设备中的嵌入式验证系统
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
US20120081207A1 (en) * 2010-09-30 2012-04-05 Apple Inc. Application launching in conjunction with an accessory
US8554924B2 (en) 2009-03-16 2013-10-08 Apple Inc. Connection to multiple accessories with multiple accessory-specific protocols
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
US8719112B2 (en) * 2009-11-24 2014-05-06 Microsoft Corporation Invocation of accessory-specific user experience
US8364745B2 (en) 2009-11-24 2013-01-29 International Business Machines Corporation Service oriented architecture enterprise service bus with universal ports
US7865629B1 (en) * 2009-11-24 2011-01-04 Microsoft Corporation Configurable connector for system-level communication
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
US8726266B2 (en) * 2010-05-24 2014-05-13 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
AU2011282892B2 (en) 2010-07-27 2015-07-16 Mdxhealth Sa Method for using gene expression to determine prognosis of prostate cancer
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
WO2012062955A1 (en) * 2010-11-12 2012-05-18 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
US8819448B2 (en) * 2011-04-29 2014-08-26 Georgetown University Method and system for managing information on mobile devices
WO2012154838A2 (en) 2011-05-09 2012-11-15 Google Inc. Generating application recommendations based on user installed applications
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
EP2712442A1 (en) 2011-05-09 2014-04-02 Google, Inc. Recommending applications for mobile devices based on installation histories
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
US8812644B2 (en) 2011-05-26 2014-08-19 Candi Controls, Inc. Enabling customized functions to be implemented at a domain
US8838261B2 (en) * 2011-06-03 2014-09-16 Apple Inc. Audio configuration based on selectable audio modes
US20120307078A1 (en) * 2011-06-03 2012-12-06 Microsoft Corporation Automatic sharing and replacement of content based on network connectivity
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
US10067747B2 (en) * 2011-08-12 2018-09-04 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
US20130060574A1 (en) * 2011-09-07 2013-03-07 Lee H. Perlman Provision of a mobile health product
US20130066650A1 (en) * 2011-09-07 2013-03-14 Happtique, Inc. Provision of a Mobile Health Product
TW201312340A (zh) * 2011-09-09 2013-03-16 Askey Technology Jiangsu Ltd 手持式電子裝置的測試系統及方法
CN103797767A (zh) * 2011-09-12 2014-05-14 诺基亚公司 启动由传感器识别的应用的方法和装置
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
EP2610857A1 (en) * 2011-12-30 2013-07-03 Samsung Electronics Co., Ltd. Display apparatus, upgrading apparatus, display system and control method thereof
KR101978305B1 (ko) * 2011-12-30 2019-08-29 삼성전자주식회사 디스플레이장치, 업그레이드장치, 디스플레이 시스템 및 그 제어방법
US9537968B1 (en) * 2012-01-06 2017-01-03 Google Inc. Communication of socket protocol based data over a storage protocol based interface
US9197686B1 (en) 2012-01-06 2015-11-24 Google Inc. Backfill of video stream
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
EP2845115B1 (en) 2012-05-02 2016-10-19 Nextlink IPR AB 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
US9306879B2 (en) * 2012-06-08 2016-04-05 Apple Inc. Message-based identification of an electronic device
US20130332632A1 (en) * 2012-06-08 2013-12-12 Apple Inc. Holistic 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
WO2014107629A1 (en) 2013-01-04 2014-07-10 Vuzix Corporation Interactive wearable and portable smart devices
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
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
US10204331B2 (en) 2013-03-15 2019-02-12 Worldpay, Llc Conducting a transaction at a mobile POS terminal using a defined structure
US9242043B2 (en) 2013-03-15 2016-01-26 Tandem Diabetes Care, Inc. Field update of an ambulatory infusion pump system
US20140351832A1 (en) * 2013-05-21 2014-11-27 Samsung Electronics Co., Ltd. Electronic device using framework interface for communication
KR102163357B1 (ko) 2013-05-21 2020-10-08 삼성전자주식회사 애플리케이션 관리 방법 및 장치
US11328344B2 (en) 2013-05-31 2022-05-10 Itron, Inc. Utility application delivery platform
US10205769B2 (en) * 2013-05-31 2019-02-12 Itron, Inc. Distributed applications across platforms
US9331894B2 (en) * 2013-05-31 2016-05-03 International Business Machines Corporation Information exchange in data center systems
US9342288B2 (en) * 2013-05-31 2016-05-17 Itron, Inc. Surfacing cross platform applications
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
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
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9588591B2 (en) 2013-10-10 2017-03-07 Google Technology Holdings, LLC Primary device that interfaces with a secondary device based on gesture commands
CA2964854A1 (en) * 2013-10-22 2015-04-30 Kindara, Inc. Integrated wireless fertility tracking system
US10250735B2 (en) 2013-10-30 2019-04-02 Apple Inc. Displaying relevant user interface objects
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
US9486571B2 (en) 2013-12-26 2016-11-08 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
CN103796080B (zh) * 2014-01-06 2018-08-31 联想(北京)有限公司 一种数据处理方法与电子设备
US9577902B2 (en) 2014-01-06 2017-02-21 Ford Global Technologies, Llc Method and apparatus for application launch and termination
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
WO2015157910A1 (zh) * 2014-04-15 2015-10-22 华为技术有限公司 共享应用信息方法和装置
WO2015163894A1 (en) * 2014-04-24 2015-10-29 Hewlett-Packard Development Company, L.P. Mobile device support for sensors in peripherals
US10482461B2 (en) 2014-05-29 2019-11-19 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 三菱樹脂株式会社 積層多孔フィルム、非水電解液二次電池用セパレータ、非水電解液二次電池、スラリー、及び塗工液
US9420087B2 (en) 2014-09-02 2016-08-16 Apple Inc. Notifications with custom user interface
WO2016036552A1 (en) 2014-09-02 2016-03-10 Apple Inc. User interactions for a mapping application
US9769301B2 (en) 2014-09-02 2017-09-19 Apple Inc. Accessory device application bundling
US10592187B2 (en) * 2014-09-02 2020-03-17 Apple Inc. Accessory device operation with user mobile device over network connection
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
US10271020B2 (en) 2014-10-24 2019-04-23 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
US20170017290A1 (en) 2015-05-13 2017-01-19 Shelf Bucks, Inc. Systems and methods for energy conservation in pop displays with wireless beacons
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
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
US9489745B1 (en) 2015-06-12 2016-11-08 Google Inc. Using depth maps of a scene to identify movement of a video camera
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
US9613423B2 (en) 2015-06-12 2017-04-04 Google Inc. Using a depth map of a monitored scene to identify floors, walls, and ceilings
US9554063B2 (en) 2015-06-12 2017-01-24 Google Inc. Using infrared images of a monitored scene to identify windows
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
US9626849B2 (en) 2015-06-12 2017-04-18 Google Inc. Using scene information from a security camera to reduce false security alerts
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
WO2017007795A1 (en) * 2015-07-07 2017-01-12 Intuitive Surgical Operations, Inc. Control of multiple devices
CN108353266B (zh) * 2015-08-20 2022-05-10 惠普发展公司,有限责任合伙企业 外围设备配对
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
US10980911B2 (en) 2016-01-21 2021-04-20 Global Plasma Solutions, Inc. Flexible ion generator device
US11399995B2 (en) 2016-02-23 2022-08-02 Deka Products Limited Partnership Mobility device
US10908045B2 (en) 2016-02-23 2021-02-02 Deka Products Limited Partnership Mobility device
US10926756B2 (en) 2016-02-23 2021-02-23 Deka Products Limited Partnership Mobility device
US10893028B2 (en) * 2017-05-20 2021-01-12 Deka Products Limited Partnership System and method for secure remote control of a medical 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
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
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
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
US11244355B2 (en) 2016-10-05 2022-02-08 Abl Ip Holding, Llc Geofencing with wireless beacon based consumer product marketing
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 百度在线网络技术(北京)有限公司 通信连接建立方法及系统、移动终端与车载设备
CN107241485A (zh) * 2017-04-19 2017-10-10 太仓诚泽网络科技有限公司 一种采用网关自动识别多媒体格式的方法
TWI637314B (zh) * 2017-05-10 2018-10-01 趙平 智慧型耳機裝置個人化系統及其使用方法
US11170409B2 (en) 2017-05-19 2021-11-09 Abl Ip Holding, Llc Wireless beacon based systems utilizing printable circuits
US11567891B2 (en) * 2017-06-05 2023-01-31 Commscope Technologies Llc Rack controller with native support for intelligent patching equipment installed in multiple racks
KR102367053B1 (ko) * 2017-07-13 2022-02-24 삼성전자주식회사 외부 전자 장치와 통신을 수행하기 위한 전자 장치
KR102185854B1 (ko) 2017-09-09 2020-12-02 애플 인크. 생체측정 인증의 구현
KR102143148B1 (ko) 2017-09-09 2020-08-10 애플 인크. 생체측정 인증의 구현
US10709410B2 (en) * 2017-09-13 2020-07-14 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
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
WO2020171248A1 (ko) * 2019-02-19 2020-08-27 모비케이 주식회사 무선인증 기반의 악세서리를 이용한 온라인 콘텐츠 제공 시스템 및 이에 사용되는 스마트폰 케이스
US11363004B2 (en) 2019-03-08 2022-06-14 International Business Machines Corporation Secure device relay
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
US11328352B2 (en) 2019-03-24 2022-05-10 Apple Inc. User interfaces for managing an account
CN113711169A (zh) 2019-03-24 2021-11-26 苹果公司 包括内容项的可选表示的用户界面
US11962836B2 (en) 2019-03-24 2024-04-16 Apple Inc. User interfaces for a media browsing application
EP3928526A1 (en) 2019-03-24 2021-12-29 Apple Inc. User interfaces for viewing and accessing content on an electronic device
WO2020198422A1 (en) 2019-03-26 2020-10-01 Tandem Diabetes Care, Inc. Method of pairing an infusion pump with a remote control device
EP3977245A1 (en) 2019-05-31 2022-04-06 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
US11477609B2 (en) 2019-06-01 2022-10-18 Apple Inc. User interfaces for location-related communications
US11481094B2 (en) 2019-06-01 2022-10-25 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
KR102451495B1 (ko) 2019-09-29 2022-10-06 애플 인크. 계정 관리 사용자 인터페이스들
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
DK202070633A1 (en) 2020-04-10 2021-11-12 Apple Inc User interfaces for enabling an activity
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
US11973737B2 (en) * 2020-11-11 2024-04-30 Twilio Inc. System and method for automatically transitioning between carrier and IP messaging
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
CA3237299A1 (en) * 2021-11-09 2023-05-19 Carolyn Ann Bankston Systems and methods for providing and using wearable electronic accessories
CN116502197A (zh) 2022-01-19 2023-07-28 戴尔产品有限公司 计算机实现的方法、设备和计算机程序产品

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001320479A (ja) * 2000-05-10 2001-11-16 Nec Niigata Ltd 携帯電話機の接続装置及び接続方法、コンピュータ、並びに接続ケーブル
JP2002335344A (ja) * 2001-03-07 2002-11-22 Casio Comput Co Ltd 接続ユニット、無線通信システム、接続ユニットの制御方法、及び、無線通信方法
JP2006033293A (ja) * 2004-07-14 2006-02-02 Toshiba Corp 携帯端末機器に装着される電子装置及び電子装置の制御方法
JP2006108899A (ja) * 2004-10-01 2006-04-20 Matsushita Electric Ind Co Ltd 通信端末装置、電化機器及び通信方法
JP2007034987A (ja) * 2005-07-29 2007-02-08 Techfirm Kk 非接触送受信システム及び携帯情報端末
JP2007135054A (ja) * 2005-11-11 2007-05-31 Felica Networks Inc 携帯通信装置,情報処理方法,およびコンピュータプログラム
WO2007114850A1 (en) * 2006-03-30 2007-10-11 Sony Ericsson Mobile Communications Ab Remote user interface for bluetoothtm device
JP2008210301A (ja) * 2007-02-28 2008-09-11 Sony Corp 記憶媒体、通信システム、並びに制御装置。
JP2008219621A (ja) * 2007-03-06 2008-09-18 Hitachi Communication Technologies Ltd 通話録音機能付き電話機およびその情報処理方法

Family Cites Families (78)

* 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
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와 무선 인터넷을 이용한 데이터 수신 방법 및시스템
US6671749B2 (en) * 2001-03-07 2003-12-30 Hewlett-Packard Development Company, L.P. Peripheral driver installation method and system
US7099333B2 (en) 2001-03-07 2006-08-29 Lucent Technologies Inc. Automatic protocol version detection and call processing reconfiguration in a communication system
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
CA2725655C (en) * 2001-11-20 2015-01-20 Western Digital Technologies, Inc. Access and control system for network-enabled devices
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
AU2003279498A1 (en) * 2003-11-02 2005-05-19 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
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
DE102006030250A1 (de) * 2005-06-30 2007-01-04 Pentax Corp. Optischer Bildstabilisator
US8755845B2 (en) 2005-07-01 2014-06-17 Plantronics, Inc. Wireless headset systems and methods for activating application programs on processor-based host
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
US7783702B2 (en) 2005-11-30 2010-08-24 Microsoft Corporation Using a mobile phone to control a personal computer
US7983413B2 (en) 2005-12-09 2011-07-19 Sony Ericsson Mobile Communications Ab VoIP accessory
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
WO2007117592A2 (en) 2006-04-05 2007-10-18 Glenbrook Associates, Inc. System and method for managing product information
US8073984B2 (en) * 2006-05-22 2011-12-06 Apple Inc. Communication protocol for use with portable electronic devices
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
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
US8078787B2 (en) 2007-06-22 2011-12-13 Apple Inc. Communication between a host device and an accessory via an intermediate device
US8086781B2 (en) * 2007-06-22 2011-12-27 Apple Inc. Serial pass-through device
US20090064202A1 (en) 2007-09-04 2009-03-05 Apple, Inc. Support layer for enabling same accessory support across multiple platforms
TW200922185A (en) * 2007-09-26 2009-05-16 Packetvideo Corp System and method for receiving broadcast multimedia on a mobile device
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
ATE554593T1 (de) * 2008-03-27 2012-05-15 Motorola Mobility Inc Verfahren und vorrichtung für die automatische nahfeld-kommunikations-anwendungsauswahl in einem elektronischen gerät
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
US8554924B2 (en) * 2009-03-16 2013-10-08 Apple Inc. Connection to multiple accessories with multiple accessory-specific protocols
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 (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001320479A (ja) * 2000-05-10 2001-11-16 Nec Niigata Ltd 携帯電話機の接続装置及び接続方法、コンピュータ、並びに接続ケーブル
JP2002335344A (ja) * 2001-03-07 2002-11-22 Casio Comput Co Ltd 接続ユニット、無線通信システム、接続ユニットの制御方法、及び、無線通信方法
JP2006033293A (ja) * 2004-07-14 2006-02-02 Toshiba Corp 携帯端末機器に装着される電子装置及び電子装置の制御方法
JP2006108899A (ja) * 2004-10-01 2006-04-20 Matsushita Electric Ind Co Ltd 通信端末装置、電化機器及び通信方法
JP2007034987A (ja) * 2005-07-29 2007-02-08 Techfirm Kk 非接触送受信システム及び携帯情報端末
JP2007135054A (ja) * 2005-11-11 2007-05-31 Felica Networks Inc 携帯通信装置,情報処理方法,およびコンピュータプログラム
WO2007114850A1 (en) * 2006-03-30 2007-10-11 Sony Ericsson Mobile Communications Ab Remote user interface for bluetoothtm device
JP2008210301A (ja) * 2007-02-28 2008-09-11 Sony Corp 記憶媒体、通信システム、並びに制御装置。
JP2008219621A (ja) * 2007-03-06 2008-09-18 Hitachi Communication Technologies Ltd 通話録音機能付き電話機およびその情報処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014517951A (ja) * 2011-04-13 2014-07-24 コンパーニュ・アンデュストリエル・エ・フィナンシエール・ダンジェニエリ・“インジェニコ” メッセージを多重送信する方法、ディバイス及び対応するプログラム
JP2014525157A (ja) * 2011-06-06 2014-09-25 アップル インコーポレイテッド アクセサリと複数のデバイスとの相互動作を促進するための技術
JP2016502188A (ja) * 2013-03-11 2016-01-21 小米科技有限▲責▼任公司Xiaomi Inc. デスクトップの表示方法、装置、プログラム及び記録媒体
JP2018120403A (ja) * 2017-01-25 2018-08-02 奥出えりか 防犯システム、防犯方法、および、防犯プログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5599768B2 (ja) アプリケーション通信プロトコルを使用するアクセサリ−移動体コンピューティング装置間の通信
US20170013066A1 (en) Application launching in conjunction with an accessory
KR101787185B1 (ko) 액세서리와 공조하는 애플리케이션 개시
AU2011101205A4 (en) Accessory and mobile computing device communication using an application communication protocol
AU2013205264B2 (en) Accessory and mobile computing device communication using an application communication protocol

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110811

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110905

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111005

R150 Certificate of patent or registration of utility model

Ref document number: 4842383

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250