Android 2.3.3 API

API レベル: 10

Android 2.3.3(GINGERBREAD_MR1)は小規模な機能リリースで、Android 2.3 プラットフォームにいくつかの改善と API が追加されています。

デベロッパー向けには、Android SDK のダウンロード可能なコンポーネントとして Android 2.3.3 プラットフォームが用意されています。ダウンロード可能なプラットフォームには、Android ライブラリとシステム イメージ、エミュレータ スキンのセットなどが含まれています。Android 2.3.3 に対する開発やテストを開始するには、Android SDK Manager を使用してプラットフォームを SDK にダウンロードします。

API の概要

以下のセクションでは、以前のバージョン以降のフレームワーク API の新機能や変更点など、2.3.3 のデベロッパー向けの新機能に関する技術的な概要を説明します。

近距離無線通信(NFC)

Android 2.3.3 では、NFC のサポートの改善と拡張が行われ、アプリがより多くの種類のタグを新しい方法で操作できるようになりました。

新しい包括的な API セットを使用すると、次のような幅広い標準タグ テクノロジーへの読み取りと書き込みのアクセスをアプリケーションに提供できます。

  • NFC-A(ISO 14443-3A)
  • NFC-B(ISO 14443-3B)
  • NFC-F(JIS 6319-4)
  • NFC-V(ISO 15693)
  • ISO-DEP(ISO 14443-4)
  • MIFARE Classic
  • MIFARE Ultralight
  • NFC フォーラムの NDEF タグ

プラットフォームは、制限付きのピアツーピア通信プロトコルと API も提供しています。フォアグラウンド アクティビティでは、この API を使用して NDEF メッセージを登録できます。NDEF メッセージは、他の NFC デバイスが接続されたときにプッシュされます。

高度なタグ ディスパッチでは、NFC タグが検出されたときに、起動する方法とタイミングをアプリがより細かく制御できるようになりました。これまで、プラットフォームは単一ステップのインテント ディスパッチを使用して、関連するアプリにタグを検出したことを通知していました。このプラットフォームは、タグイベントが他のアプリに渡される前に、フォアグラウンド アプリがタグイベントを制御できるようにする 4 ステップのプロセスを使用します(android.nfc.NfcAdapter.enableForegroundDispatch())。新しいディスパッチ プロセスでは、android.nfc.action.NDEF_DISCOVEREDandroid.nfc.action.TECH_DISCOVERED という 2 つの新しいインテント アクションに基づいて、アプリが特定のタグコンテンツとタグ テクノロジーをリッスンできます。

NFC API は、android.nfc パッケージと android.nfc.tech パッケージで利用できます。主なクラスは次のとおりです。

  • NfcAdapter: デバイスの NFC ハードウェアを表します。
  • NdefMessage: NDEF データ メッセージを表します。データを格納する「レコード」がデバイスとタグ間で転送される標準形式です。さまざまなタイプの多数の NDEF レコードを指定する NDEF メッセージ。 アプリは NDEF_DISCOVERED インテント、TECH_DISCOVERED インテント、TAG_DISCOVERED インテントからこれらのメッセージを受信できます。
  • NdefRecord: NdefMessage で提供されます。これは、共有するデータの種類を記述し、データ自体を格納します。
  • Tag: デバイスによってスキャンされたタグを表します。基盤となるタグ テクノロジーに基づいて、複数の種類のタグがサポートされています。
  • TagTechnology: タグに含まれるテクノロジーに基づいて、タグ プロパティと I/O オペレーションにアプリケーションがアクセスできるようにするインターフェースです。Android 2.3.3 でサポートされているタグ技術の一覧については、android.nfc.tech をご覧ください。

NFC 通信は、デバイス ハードウェア内のワイヤレス技術に依存しており、すべての Android デバイスに搭載されているわけではありません。NFC をサポートしていない Android デバイスは、getDefaultAdapter(Context) が呼び出されると null オブジェクトを返し、context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)false を返します。ただし、基盤となるハードウェアのサポートに関係なく、NFC API は常に存在します。

アプリが NFC API を使用するには、マニフェスト ファイルで <uses-permission android:name="android.permission.NFC"> を宣言して、ユーザーに権限をリクエストする必要があります。

さらに、NFC をサポートしていないデバイスのユーザーがアプリを見つけられないように、デベロッパーは Google Play でフィルタリングをリクエストできます。フィルタリングをリクエストするには、アプリのマニフェストに <uses-feature android:name="android.hardware.nfc" android:required="true"> を追加します。

詳細については、NFC デベロッパー ガイドをご覧ください。

Bluetooth

Android 2.3.3 では、Bluetooth の非セキュア ソケット接続に対するプラットフォームと API のサポートが追加されています。これにより、アプリは、認証用の UI を備えていないシンプルなデバイスと通信できます。詳細については、createInsecureRfcommSocketToServiceRecord(java.util.UUID)listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID) をご覧ください。

グラフィック

  • 新しい BitmapRegionDecoder クラスを使用すると、アプリケーションで画像から長方形の領域をデコードできます。この API は、元の画像が大きく、アプリケーションでその画像の一部しか必要ない場合に特に便利です。
  • BitmapFactory.Options の新しい inPreferQualityOverSpeed フィールドを使用すると、アプリは JPEG デコードでより正確ですがやや低速な IDCT メソッドを使用できます。これにより、再構成された画像の品質が向上します。

メディア フレームワーク

  • 新しい MediaMetadataRetriever クラスは、入力メディア ファイルからフレームとメタデータを取得するための統合インターフェースを提供します。
  • MediaRecorder.AudioEncoderMediaRecorder.OutputFormat には、AMR ワイドバンドと AAC 形式を指定するための新しいフィールドが含まれています。

音声認識

音声認識 API には、音声検索結果を新しい方法で管理できる新しい定数が含まれています。新しい定数は、音声認識の通常の使用には必要ありませんが、これらを使用して、アプリケーションで音声検索の結果に異なるビューを提供できます。詳しくは、RecognizerResultsIntent をご覧ください。

API レベル

Android 2.3.3 プラットフォームでは、フレームワーク API の更新版が提供されています。Android 2.3.3 API には整数識別子(10)が割り当てられます。この識別子はシステム自体に格納されます。「API レベル」と呼ばれるこの識別子により、システムはアプリをインストールする前に、アプリがシステムと互換性を持つかどうかを正しく判断できます。

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

詳しくは、API レベルとはをご覧ください。