Android 4.0.3 API

API レベル: 15

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

デベロッパー向けには、Android SDK のダウンロード可能なコンポーネントとして Android 4.0.3 プラットフォームが用意されています。ダウンロード可能なプラットフォームには、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() メソッドを使用して、インフレートされたレイアウト内の任意の View のコンテンツ説明を設定および取得できるようになりました。
  • 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 プラットフォームに対してアプリをコンパイルする必要があります。ニーズによっては、android:minSdkVersion="15" 属性を <uses-sdk> 要素に追加しなければならない場合もあります。

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