キーボード、温度計、ロボット、照明制御など、Android のアクセサリーには思いつくだけでもさまざまな用途のものがあります。すべての Android アクセサリーは、なんらかの方法で Android デバイスに接続されます。したがって、アクセサリーを作成する際は、アクセサリーで使用する接続の種類を検討する必要があります。このページでは、Android アクセサリーの接続方法について簡単に説明し、アクセサリーの作成に役立つリソースの一覧を紹介します。
USB 経由で接続する
USB ケーブルで Android デバイスに接続するアクセサリーは、Android Open Accessory(AOA)プロトコルに対応している必要があります。AOA プロトコルは、アクセサリーが USB 経由で Android デバイスと通信する方法を規定しています。Android デバイスの電源は低出力であるため、AOA では、アクセサリーが USB ホストとして動作することが要求されます。つまり、デバイスに接続したアクセサリーはバスに給電する必要があります。
AOA には、次の 2 種類の通信に対応したバージョンがあります。
- AOAv1:: 汎用的なアクセサリー通信と ADB デバッグをサポートします。
- AOAv2: ヒューマン インターフェース デバイス(HID)機能をサポートします。Android 4.1(API レベル 16)以降で使用できます。
ADB やオーディオ プロトコルを使わずに、一般的なアクセサリー プロトコルでアクセサリーと通信する場合は、Android アプリで USB アクセサリーの接続を検出して通信を確立できるようにする必要があります。
次のステップ
USB 接続を使用する Android アクセサリーを作成するには:
- ハードウェア プラットフォームを選択するか、USB ホストモードをサポートするハードウェア デバイスを作成します。
- AOA 仕様を確認して、アクセサリーのハードウェアにこのプロトコルを実装する方法を理解します。
- ADK 2012 ファームウェアのソースコード(
<adk-src>/adk2012/board/library/ADK2/
)を確認します。一般的なデータ通信とオーディオ ストリーミング用に USB 接続を使用するアクセサリーの実装例を参照できます。 - USB 経由でアクセサリーと通信する Android アプリを作成する場合は、ADK 2012 Android アプリのソースコード(
<adk-src>/adk2012/app/
)を確認します。
Bluetooth 経由で接続する
Bluetooth 接続で Android デバイスと接続するアクセサリーは、Android がサポートする接続プロファイルを使用できます。使用できるプロファイルには、Simple Serial Protocol(SSP)プロファイルや Advanced Audio Distribution Profile(A2DP)プロファイルがあります。Android デバイスとの接続に Bluetooth を使用するアクセサリーは、Bluetooth 通信に加え、サポートされているプロファイルを少なくとも 1 つサポートする必要があります。
ユーザーがアクセサリーを使用するには、Android デバイスで Bluetooth を有効にし、アクセサリーをペアリングする必要があります。データ入力やインターフェースへの出力の制御など、特別な通信を処理するセカンダリ Android アプリをアクセサリーと合わせて用意することもできます。
次のステップ
Bluetooth 接続を使用する Android アクセサリーを作成するには:
- ハードウェア プラットフォームを選択するか、または Bluetooth 通信に加えて Android がサポートする接続プロファイル(SSP や A2DP など)に対応できるハードウェア デバイスを作成します。
- ADK 2012 ファームウェアのソースコード(
<adk-src>/adk2012/board/library/ADK2/
)を確認します。Bluetooth 接続を使用した一般的なデータ通信とオーディオ ストリーミングの実装例を参照できます。 - Bluetooth 経由でアクセサリーと通信する Android アプリを作成する場合は、ADK 2012 Android アプリのソースコード(
<adk-src>/adk2012/app/
)を確認します。
注: ADK 2012 のソースコードは、Texas Instruments CC2564 チップ用に作成されたオープンソースの Bluetooth スタックを含んでいますが、標準の Host/Controller Interface(HCI)に対応した Bluetooth チップでも動作するように設計されています。