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 수준 문서를 참고하세요.