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에 대한 기술적 개요를 제공합니다.
연락처 제공자의 소셜 스트림 API
이제 상태 업데이트나 체크인과 같은 소셜 스트림 데이터를 사용하는 애플리케이션에서 해당 데이터를 사용자의 각 연락처와 동기화하여 스트림의 항목과 각 연락처의 사진을 제공할 수 있습니다.
개별 연락처의 소셜 스트림이 포함된 데이터베이스 테이블은 스트림 항목이 속한 ContactsContract.RawContacts
디렉터리 내에 중첩되는 URI인 android.provider.ContactsContract.StreamItems에 의해 정의됩니다. 각 소셜 스트림 테이블에는 소스 (아바타)를 나타내는 아이콘, 항목 라벨, 기본 텍스트 콘텐츠, 항목에 대한 댓글 (예: 다른 사람의 응답)과 같이 각 스트림 항목에 대한 여러 메타데이터 열이 포함됩니다. 스트림과 연결된 사진은 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
스타일은 사용자가 입력/작성 중인 단어/텍스트에 자동 수정이 곧 적용될 예정임을 나타냅니다. 이 유형의 추천은 다르게 렌더링되어 자동 수정이 실행되고 있음을 나타냅니다.
블루투스
새로운 공개 메서드 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 확장 프로그램의 enum에 관한 정의를 추가합니다(
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(text-to-speech)
- 네트워크 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 수준 문서를 참고하세요.