Android 2.3.4 API

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 レベルとはをご覧ください。