Android 4.0.3 API

API レベル: 15

Android 4.0.3(ICE_CREAM_SANDWICH_MR1)は、Android 4.0ICE_CREAM_SANDWICH)プラットフォーム ファミリーの増分リリースです。このリリースには、ユーザーとデベロッパー向けの新機能、API の変更、さまざまなバグの修正が含まれています。

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

API の概要

以降のセクションでは、Android 4.0.3 の新しい API の技術的な概要について説明します。

連絡先プロバイダの Social Stream API

ステータスの更新やチェックインなどのソーシャル ストリーム データを使用しているアプリは、そのデータをユーザーの連絡先と同期して、ストリーム内のアイテムと各アイテムの写真を提供できるようになりました。

個々の連絡先のソーシャル ストリームを含むデータベース テーブルは、android.provider.ContactsContract.StreamItems によって定義されます。この URI は、ストリーム アイテムが属する ContactsContract.RawContacts ディレクトリ内にネストされています。各ソーシャル ストリーム テーブルには、各ストリーム アイテムに関するメタデータの列がいくつかあります。たとえば、ソースを表すアイコン(アバター)、アイテムのラベル、メインのテキスト コンテンツ、アイテムに関するコメント(他のユーザーからの返信など)などです。ストリームに関連付けられた写真は、android.provider.ContactsContract.StreamItemPhotos で定義された別のテーブルに保存されます。このテーブルは、android.provider.ContactsContract.StreamItems Uri のサブディレクトリとして使用できます。

詳細については、android.provider.ContactsContract.StreamItems と android.provider.ContactsContract.StreamItemPhotos をご覧ください。

連絡先のソーシャル ストリーム アイテムの読み取りまたは書き込みを行うには、アプリがマニフェスト ファイルで <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> または <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> を宣言して、ユーザーに権限をリクエストする必要があります。

カレンダー プロバイダ

ホーム画面のウィジェット

Android 4.0 以降、ホーム画面のウィジェットに独自のパディングを含めることはできません。代わりに、現在の画面の特性に基づいてウィジェットごとにパディングが自動的に追加されます。その結果、グリッド形式でウィジェットを一様に一貫性のある形で表示できるようになります。ホーム画面ウィジェットをホストするアプリをサポートするため、このプラットフォームには新しいメソッド getDefaultPaddingForWidget() が用意されています。アプリはこのメソッドを呼び出してシステムが定義したパディングを取得し、これをウィジェットに割り当てるセルの数を計算するときに考慮に入れることができます。

スペルチェック

  • スペルチェック サービスにアクセスするアプリの場合、新しい cancel() メソッドは、セッションで保留中または実行中のスペルチェック タスクをすべてキャンセルします。
  • スペルチェック サービスでは、新しい候補フラグ RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS により、信頼度の高い候補と信頼度の低い候補を区別できます。たとえば、スペルチェッカーは、入力された単語がユーザー辞書に登録されていないが、候補が推定される場合はフラグを設定します。また、入力された単語が辞書に登録されていないが、候補が推定されてもあまり有用でない場合は、フラグを設定しません。

    スペルチェッカーに接続されているアプリは、RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS フラグを他の候補属性と組み合わせて使用し、getSuggestionsAttributes() メソッドと getSuggestionsCount() メソッドを使用して、入力された単語をスペルミスとしてマークして候補を表示するかどうかを決定できます。

  • テキスト スパン用の新しい FLAG_AUTO_CORRECTION スタイルは、ユーザーが入力または作成している単語やテキストに自動修正が適用されることを示します。このタイプの候補は、自動修正が行われていることを示すために、異なる方法でレンダリングされます。

Bluetooth

新しい公開メソッド fetchUuidsWithSdp()getUuids() を使用すると、アプリはリモート デバイスでサポートされている機能(UUID)を判断できます。fetchUuidsWithSdp() の場合、システムはリモート デバイスでサービス検出を実行してサポートされている UUID を取得し、ACTION_UUID インテントで結果をブロードキャストします。

UI ツールキット

新しいメソッド setUserVisibleHint()getUserVisibleHint() を使用すると、フラグメントが現在ユーザーに表示されているかどうかのヒントを設定できます。システムは、表示されるフラグメントのローダが実行されるまで、ユーザーに表示されないフラグメントの開始を延期します。デフォルトでは、公開設定のヒントは「true」です。

グラフィック

ユーザー補助

  • RemoteViews のクライアントは、メソッド setContentDescription() を使用して、インフレートされたレイアウト内の任意のビューのコンテンツの説明を設定および取得できるようになりました。
  • getMaxScrollX()getMaxScrollY()setMaxScrollX()setMaxScrollY() のメソッドを使用すると、アプリは AccessibilityRecord オブジェクトの最大スクロール オフセットを取得して設定できます。
  • タップ操作モードが有効になっている場合、新しい安全な設定 ACCESSIBILITY_SPEAK_PASSWORD は、ヘッドセットを使用していない場合でも、ユーザーがパスワード フィールドに入力したテキストを IME に読み上げてもらうかどうかを示します。デフォルトでは、ヘッドセットを使用している場合を除き、パスワードのテキストは読み上げられません。

テキスト読み上げ

  • ネットワーク TTS のサポートをクエリして有効にする新しいメソッド getFeatures() を追加しました。
  • エンジンが登録して音声合成エラーの通知を受け取ることができる新しいリスナー クラス UtteranceProgressListener を追加しました。

データベース

  • 新しい CrossProcessCursorWrapper クラスにより、コンテンツ プロバイダはクロスプロセス クエリの結果をより効率的に返すことができます。新しいクラスは、リモートでプロセスに送信されるカーソルをラップするための便利なビルディング ブロックです。また、通常の Cursor オブジェクトを CrossProcessCursor オブジェクトに透過的に変換することもできます。

    CrossProcessCursorWrapper クラスは、コンテンツ プロバイダの実装時にアプリで発生する一般的なパフォーマンスの問題とバグを修正します。

  • CursorWindow(java.lang.String) コンストラクタが、名前の文字列を入力として受け取るようになりました。システムはローカル カーソルとリモート カーソルのウィンドウを区別しなくなったため、CursorWindow(boolean) は非推奨になりました。

インテント

デバイス上の一般的なタイプのアプリ(CATEGORY_APP_BROWSERCATEGORY_APP_CALENDARCATEGORY_APP_MAPS など)をターゲットとする新しいカテゴリを追加しました。

カメラ

権限

新しい権限は次のとおりです。

  • android.Manifest.permission#READ_SOCIAL_STREAM と android.Manifest.permission#WRITE_SOCIAL_STREAM: 同期アダプタが、共有された連絡先プロバイダの連絡先に対してソーシャル ストリーム データを読み書きできるようにします。

Android 4.0.3(API レベル 15)のすべての API の変更点の詳細については、API の相違点レポートをご覧ください。

API レベル

Android 4.0.3 API には、システム自体に保存される整数識別子(15)が割り当てられます。この識別子(API レベル)により、システムはアプリをインストールする前に、アプリがシステムと互換性があるかどうかを正しく判断できます。

Android 4.0.3 で導入された API をアプリで使用するには、API レベル 15 以降をサポートする Android プラットフォームに対してアプリをコンパイルする必要があります。必要に応じて、<uses-sdk> 要素に android:minSdkVersion="15" 属性を追加することも必要になる場合があります。

詳細については、API レベルのドキュメントをご覧ください。