API レベル: 10
Android 2.3.4(GINGERBREAD_MR1
)は Android 2.3 プラットフォームにいくつかのバグの修正とパッチを追加するメンテナンス リリースです。Android 2.3.3 からの API の変更はありません。さらに、Android 2.3.4 では、オプションの Open Accessory ライブラリを通じて Open Accessory API をモバイル デバイスでもサポートしています。
デベロッパー向けに、Android SDK のダウンロード可能なコンポーネントとして Android 2.3.4 プラットフォームが用意されています。ダウンロード可能なプラットフォームには、Android ライブラリとシステム イメージに加え、一連のエミュレータ スキンなどが含まれています。Android 2.3.4 に対する開発やテストを開始するには、Android SDK Manager を使用してプラットフォームを SDK にダウンロードします。
API の概要
Android 2.3.4 は、Android 2.3.3(API レベル 10)と同じフレームワーク API をアプリに提供しています。API の概要については、Android 2.3.3 バージョン ノートをご覧ください。
アクセサリ ライブラリを開く
Open Accessory は、接続されている周辺機器を、プラットフォームで実行されているアプリケーションと統合するための新しい機能です。この機能は、プラットフォームに組み込まれた USB(Universal Serial Bus)スタックと、アプリに公開される API に基づいています。Android 搭載デバイスにアクセサリとして接続される周辺機器は、USB ホストとして接続されます。
Open Accessory は Android 3.1(API レベル 12)で導入されましたが、Android 2.3.4 を搭載したデバイスで、オプションの外部ライブラリである Open Accessory ライブラリを介して利用できます。このライブラリは、USB 経由で接続されたさまざまなデバイスタイプをアプリが検出、通信、管理できるようにするフレームワーク API を公開します。また、Android 2.3.4 のアプリに直接公開されていない Android プラットフォームの一部に対する API の実装も提供します。
Open Accessory ライブラリは、どのデバイスでも任意で使用できます。デバイス メーカーは、Open Accessory ライブラリを製品に含めるか、除外するかを選択できます。このライブラリには Android 3.1 と上位互換性があるため、Android 2.3.4 に対して開発されたアプリは、USB アクセサリをサポートしている Android 3.1 搭載デバイスでも正しく動作します。
Open Accessory ライブラリが提供する API は、Android 3.1 で提供されている Open Accessory API をベースにしています。ほとんどの分野で、同じ手法と API を使用できます。ただし、Android 2.3.4 での Open Accessory ライブラリ向けの開発は、標準の USB API とは次の点で異なります。
UsbManager
オブジェクトの取得 - アドオン ライブラリの使用時にUsbManager
オブジェクトを取得するには、ヘルパー メソッドとしてgetSystemService()
ではなくgetInstance()
を使用します。次に例を示します。Kotlin
val manager = UsbManager.getInstance(this)
Java
UsbManager manager = UsbManager.getInstance(this);
- フィルタされたインテントから
UsbAccessory
を取得する - インテント フィルタを使用して接続済みのデバイスまたはアクセサリをフィルタする場合、アプリに渡されるインテント内にUsbAccessory
オブジェクトが含まれます。アドオン ライブラリを使用している場合は、次の方法でUsbAccessory
オブジェクトを取得できます。Kotlin
val accessory = UsbManager.getAccessory(intent)
Java
UsbAccessory accessory = UsbManager.getAccessory(intent)
- USB ホストのサポートなし - Android 3.1 では USB ホストモードはサポートされていますが、Android 2.3.4 と Open Accessory ライブラリは(
UsbDevice
などを通じて)USB ホストモードをサポートしていません。Android 2.3.4 を搭載した Android 搭載デバイスは USB ホストとして機能できません。このライブラリにより、Android 搭載デバイスは周辺機器としてのみ機能し、接続されたアクセサリは USB ホストとして(UsbAccessory
を介して)機能します。
Open Accessory ライブラリを使用してアプリを開発するには、次のものが必要です。
- Android SDK Tools の最新バージョン
- ライブラリ自体を含む(リンク用)Google API アドオンの最新バージョン
- USB アクセサリがサポートされている Android 2.3.4(または Android 3.1)を搭載し、接続されたデバイスに対してランタイム テストを実施するための実際のハードウェア デバイス
USB アクセサリと連携するアプリの開発方法について詳しくは、関連するデベロッパー向けドキュメントをご覧ください。
さらに、適切なアクセサリ サポートを提供していないデバイスのユーザーはアプリを使用できないように、Google Play でのフィルタリングをリクエストできます。フィルタリングをリクエストするには、次の要素をアプリケーション マニフェストに追加します。
<uses-feature android:name="android.hardware.usb.accessory" android:required="true">
API レベル
Android 2.3.4 プラットフォームでは、API レベルは上がりません。Android 2.3.3 と同じ API レベル、API レベル 10 が使用されます。
API レベル 10 で導入された API をアプリで使用するには、Open Accessory ライブラリを含む最新バージョンの Google API アドオンに用意されている Android ライブラリに対してアプリをコンパイルする必要があります。
必要に応じて、アプリのマニフェストで <uses-sdk>
要素に android:minSdkVersion="10"
属性を追加することが必要になる場合もあります。アプリが Android 2.3.3 以降でのみ動作するように設計されている場合、この属性を宣言すると、以前のバージョンのプラットフォームにはアプリをインストールできなくなります。
詳しくは、API レベルとはをご覧ください。