Android 2.3.4 API

API レベル: 10

Android 2.3.4(GINGERBREAD_MR1)は、Android 2.3.3 から API の変更なしに、Android 2.3 プラットフォームにいくつかのバグの修正とパッチを追加するメンテナンス リリースです。また、Android 2.3.4 では、オプションの Open Accessory Library を介して、モバイル デバイスに 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(ユニバーサル シリアル バス)スタックと、アプリケーションに公開される API に基づいています。Android 搭載デバイスにアクセサリとして接続する周辺機器は、USB ホストとして接続します。

Open Accessory は Android 3.1(API レベル 12)で導入されましたが、オプションの外部ライブラリである Open Accessory ライブラリを使用することで、Android 2.3.4 を搭載するデバイスで利用できます。このライブラリは、USB 経由で接続されたさまざまなデバイスタイプをアプリが検出して通信し、管理できるようにするフレームワーク API を公開します。また、Android 2.3.4 のアプリに直接公開されていない Android プラットフォームの部分に対する API の実装も提供します。

Open Accessory ライブラリは、どのデバイスでもオプションです。デバイス メーカーは、自社の製品に Open Accessory ライブラリを含めるか、除外するかを選択できます。このライブラリは Android 3.1 と互換性があるため、Android 2.3.4 用に開発されたアプリは、Android 3.1 を搭載したデバイス(USB アクセサリをサポートしているデバイス)で適切に動作します。

Open Accessory Library が提供する API は、Android 3.1 で提供されている Open Accessory API をベースにしています。ほとんどの領域では、同じ手法と API を使用できます。ただし、Android 2.3.4 で Open Accessory Library 向けに開発する場合は、標準の 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 2.3.4 と Open Accessory ライブラリは USB ホストモード(UsbDevice など)をサポートしていませんが、USB ホストモードは Android 3.1 でサポートされています。Android 2.3.4 を搭載した Android 搭載デバイスは USB ホストとして機能できません。このライブラリにより、Android 搭載デバイスは周辺機器としてのみ機能し、接続されたアクセサリは(UsbAccessory を介して)USB ホストとして機能します。

Open Accessory Library を使用してアプリを開発するには、次のものが必要です。

  • 最新バージョンの 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 をアプリで使用するには、最新バージョンの Google API アドオンで提供される Android ライブラリに対してアプリをコンパイルする必要があります。このアドオンには Open Accessory ライブラリも含まれています。

必要に応じて、アプリのマニフェストで <uses-sdk> 要素に android:minSdkVersion="10" 属性を追加することが必要になる場合もあります。アプリが Android 2.3.3 以降でのみ動作するように設計されている場合、この属性を宣言すると、以前のバージョンのプラットフォームにはアプリをインストールできなくなります。

詳細については、API レベルとはをご覧ください。