API レベル: 15
Android 4.0.3(ICE_CREAM_SANDWICH_MR1)は、Android 4.0(ICE_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"> を宣言して、ユーザーに権限をリクエストする必要があります。
カレンダー プロバイダ
- カレンダー プロバイダに色表を表すクラス
CalendarContract.Colors を追加しました。このクラスには、特定のアカウントで使用可能な色にアクセスするためのフィールドが用意されています。色は COLOR_KEY で参照されます。これは、特定のアカウント名またはタイプに対して一意である必要があります。これらの値を更新できるのは同期アダプターのみです。
- エクスチェンジ/同期のサポート用に
ALLOWED_AVAILABILITY と ALLOWED_ATTENDEE_TYPES を追加しました。
- 参加者と
AVAILABILITY_TENTATIVE に TYPE_RESOURCE(会議室など)を追加し、イベントに EVENT_COLOR_KEY を追加します。
CalendarContract.Colors を追加しました。このクラスには、特定のアカウントで使用可能な色にアクセスするためのフィールドが用意されています。色は COLOR_KEY で参照されます。これは、特定のアカウント名またはタイプに対して一意である必要があります。これらの値を更新できるのは同期アダプターのみです。ALLOWED_AVAILABILITY と ALLOWED_ATTENDEE_TYPES を追加しました。AVAILABILITY_TENTATIVE に TYPE_RESOURCE(会議室など)を追加し、イベントに 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()を使用して、インフレートされたレイアウト内の任意のビューのコンテンツの説明を設定および取得できるようになりました。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 プラットフォームに対してアプリをコンパイルする必要があります。必要に応じて、<uses-sdk> 要素に android:minSdkVersion="15" 属性を追加することも必要になる場合があります。
詳細については、API レベルのドキュメントをご覧ください。