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 관리자를 사용하여 플랫폼을 SDK에 다운로드하세요.
API 개요
아래 섹션에서는 Android 4.0.3의 새로운 API에 대한 기술 개요를 제공합니다.
연락처 제공자의 소셜 스트림 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">
를 선언하여 사용자에게 권한을 요청해야 합니다.
캘린더 제공자
- Calendar Provider에 색상 표를 나타내는
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()
메서드를 사용하여 확장된 레이아웃의 뷰 콘텐츠 설명을 설정하고 가져올 수 있습니다. 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 플랫폼을 기준으로 애플리케이션을 컴파일해야 합니다. 필요에 따라 <uses-sdk>
요소에 android:minSdkVersion="15"
속성을 추가해야 할 수도 있습니다.
자세한 내용은 API 수준 문서를 참고하세요.