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 には整数 ID(15)が割り当てられます。この識別子はシステム自体に保存されます。「API レベル」と呼ばれるこの識別子により、アプリをインストールする前に、アプリがシステムと互換性を正しく判断できるようになります。
Android 4.0.3 で導入された API をアプリで使用するには、API レベル 15 以上をサポートする Android プラットフォームに対してアプリをコンパイルする必要があります。必要に応じて、<uses-sdk>
要素に android:minSdkVersion="15"
属性を追加する必要もあります。
詳しくは、API レベルのドキュメントをご覧ください。