Android 2.3.3 API

API レベル: 10

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

デベロッパーは、Android 2.3.3 プラットフォームを Android SDK のダウンロード可能なコンポーネントとして利用できます。ダウンロード可能なプラットフォームには、Android ライブラリとシステム イメージのほか、エミュレータのスキンなど一連の機能が含まれています。Android 2.3.3 での開発またはテストを開始するには、Android SDK Manager を使用して、プラットフォームを SDK にダウンロードします。

API の概要

以降のセクションでは、2.3.3 でデベロッパー向けに追加された新機能や、フレームワーク 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 を使用して、接続時に他の NFC デバイスにプッシュされる NDEF メッセージを登録できます。

高度なタグ ディスパッチにより、アプリは起動方法と起動タイミング、NFC タグの検出タイミングをより細かく制御できるようになりました。以前は、プラットフォームは 1 ステップのインテント ディスパッチを使用して、タグが検出されたことを関心のあるアプリに通知していました。プラットフォームでは、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_DISCOVEREDTAG_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"> を宣言して、ユーザーに権限をリクエストする必要があります。

また、デベロッパーは Google Play でフィルタリングをリクエストして、デバイスが NFC をサポートしていないユーザーにアプリが検出されないようにすることができます。フィルタをリクエストするには、アプリのマニフェストに <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 メソッドを使用できます。これにより、再構成された画像の品質が向上します。

メディア フレームワーク

音声認識

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