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())に渡される前に、フォアグラウンド アプリがタグイベントを制御できるようになりました。また、新しいディスパッチ プロセスでは、2 つの新しいインテント アクション(android.nfc.action.NDEF_DISCOVEREDandroid.nfc.action.TECH_DISCOVERED)に基づいて、アプリで特定のタグ コンテンツやタグ テクノロジーをリッスンできます。

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

  • NfcAdapter: デバイスの NFC ハードウェアを表します。
  • NdefMessage。NDEF データ メッセージを表します。これは、データを伝送する「レコード」がデバイスとタグの間で転送される標準形式です。異なるタイプの多数の NDEF レコードがある NDEF メッセージ。アプリは、NDEF_DISCOVEREDTECH_DISCOVERED、または TAG_DISCOVERED インテントからこれらのメッセージを受信できます。
  • NdefRecordNdefMessage で配信されます。これは共有されるデータの種類を記述し、データ自体を保持します。
  • 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 レベルとはをご覧ください。