API レベル: 15
Android 4.0.3(ICE_CREAM_SANDWICH_MR1
)は、Android 4.0(ICE_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">
(あるいはその両方)を宣言して、ユーザーに権限をリクエストする必要があります。
カレンダー プロバイダ
- カレンダー プロバイダのカラーテーブルを表すクラス
CalendarContract.Colors
を追加しました。このクラスは、指定されたアカウントで利用可能な色にアクセスするためのフィールドを提供します。色は COLOR_KEY
によって参照されます。これは、特定のアカウント名/タイプに対して一意である必要があります。これらの値は、同期アダプターによってのみ更新できます。
- 交換/同期をサポートする
ALLOWED_AVAILABILITY
と ALLOWED_ATTENDEE_TYPES
を追加しました。
- 参加者には
TYPE_RESOURCE
(会議室など)、イベントの AVAILABILITY_TENTATIVE
と EVENT_COLOR_KEY
を追加します。
CalendarContract.Colors
を追加しました。このクラスは、指定されたアカウントで利用可能な色にアクセスするためのフィールドを提供します。色は COLOR_KEY
によって参照されます。これは、特定のアカウント名/タイプに対して一意である必要があります。これらの値は、同期アダプターによってのみ更新できます。ALLOWED_AVAILABILITY
と ALLOWED_ATTENDEE_TYPES
を追加しました。TYPE_RESOURCE
(会議室など)、イベントの AVAILABILITY_TENTATIVE
と EVENT_COLOR_KEY
を追加します。ホーム画面のウィジェット
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」です。
グラフィック
SurfaceTexture
の新しいメソッドsetDefaultBufferSize(int, int)
は、画像バッファのデフォルト サイズを設定します。このメソッドは、Canvas
で(lockCanvas(Rect)
で)または OpenGL ES で(EGLSurface で)画像を生成するときに画像サイズを設定するために使用できます。- GL_OES_EGL_image_external OpenGL ES 拡張機能の列挙型(
GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
、GL_SAMPLER_EXTERNAL_OES
、GL_TEXTURE_BINDING_EXTERNAL_OES
、GL_TEXTURE_EXTERNAL_OES
)の定義を追加します。
ユーザー補助
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_BROWSER
、CATEGORY_APP_CALENDAR
、CATEGORY_APP_MAPS
など)をターゲットとするための新しいカテゴリを追加しました。
カメラ
MediaMetadataRetriever
が新しい定数METADATA_KEY_LOCATION
を追加し、アプリがアクセスして画像や動画の位置情報を取得できるようにします。CamcorderProfile
: QVGA(320x240)解像度プロファイルを追加します。品質レベルは、QUALITY_QVGA
. 定数とQUALITY_TIME_LAPSE_QVGA
定数で表されます。- 新しいメソッド
setVideoStabilization()
、getVideoStabilization()
、isVideoStabilizationSupported()
を使用すると、Camera
の動画の手ぶれ補正の確認と管理ができます。
権限
新しい権限は次のとおりです。
- 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 レベルのドキュメントをご覧ください。