API 수준: 10
Android 2.3.3 (GINGERBREAD_MR1
)은 Android 2.3 플랫폼에 여러 개선사항과 API를 추가한 소규모 기능 출시입니다.
개발자는 Android 2.3.3 플랫폼을 Android SDK의 다운로드 가능한 구성요소로 사용할 수 있습니다. 다운로드 가능한 플랫폼에는 Android 라이브러리, 시스템 이미지, 에뮬레이터 스킨 세트 등이 포함됩니다. Android 2.3.3을 개발하거나 테스트를 시작하려면 Android SDK Manager를 사용하여 플랫폼을 SDK에 다운로드하세요.
API 개요
아래 섹션에서는 이전 버전 이후 프레임워크 API의 새로운 기능과 변경사항을 포함하여 2.3.3의 새로운 기능에 관한 기술 개요를 제공합니다.
근거리 무선통신(NFC)
Android 2.3.3에서는 애플리케이션이 새로운 방식으로 더 많은 유형의 태그와 상호작용할 수 있도록 NFC의 지원 기능이 개선되고 확장되었습니다.
새롭고 포괄적인 API 세트를 통해 애플리케이션에 다음과 같은 광범위한 표준 태그 기술에 대한 읽기 및 쓰기 액세스 권한을 부여합니다.
- NFC-A (ISO 14443-3A)
- NFC-B (ISO 14443-3B)
- NFC-F (JIS 6319-4)
- NFC-V (ISO 15693)
- ISO-DEP (ISO 14443-4)
- MIFARE Classic
- MIFARE Ultralight
- NFC 포럼 NDEF 태그
또한 플랫폼은 제한된 P2P 통신 프로토콜 및 API를 제공합니다. 포그라운드 활동은 API를 사용하여 연결 시 다른 NFC 기기로 푸시될 NDEF 메시지를 등록할 수 있습니다.
이제 고급 태그 디스패치를 통해 애플리케이션은 NFC 태그가 검색될 때 실행되는 방법과 시기를 더 세밀하게 제어할 수 있습니다. 이전에는 플랫폼에서 단일 단계 인텐트 디스패치를 사용하여 관심 있는 애플리케이션에 태그가 발견되었음을 알렸습니다. 이제 플랫폼에서는 태그 이벤트가 다른 애플리케이션에 전달되기 전에(android.nfc.NfcAdapter.enableForegroundDispatch()
) 태그 이벤트를 제어할 수 있도록 하는 4단계 프로세스를 사용합니다. 또한 새로운 디스패치 프로세스를 사용하면 앱이 두 가지 새로운 인텐트 작업(android.nfc.action.NDEF_DISCOVERED
및 android.nfc.action.TECH_DISCOVERED
)에 기반하여 특정 태그 콘텐츠 및 태그 기술을 수신 대기할 수 있습니다.
NFC API는 android.nfc
및 android.nfc.tech
패키지에서 사용할 수 있습니다. 주요 클래스는 다음과 같습니다.
NfcAdapter
: 기기의 NFC 하드웨어를 나타냅니다.NdefMessage
: 데이터를 전달하는 '레코드'가 기기와 태그 간에 전송되는 표준 형식인 NDEF 데이터 메시지를 나타냅니다. NDEF 메시지는 서로 다른 유형의 특정 NDEF 레코드로 이루어져 있습니다. 애플리케이션은NDEF_DISCOVERED
,TECH_DISCOVERED
또는TAG_DISCOVERED
인텐트에서 이러한 메시지를 수신할 수 있습니다.NdefRecord
: 공유 중인 데이터의 유형을 설명하고 데이터 자체를 전달하는NdefMessage
에서 제공됩니다.Tag
: 기기에서 스캔한 태그를 나타냅니다. 기본 태그 기술에 따라 여러 유형의 태그가 지원됩니다.TagTechnology
: 태그에 있는 기술에 따라 태그 속성 및 I/O 작업에 대한 액세스 권한을 애플리케이션에 제공하는 인터페이스입니다. Android 2.3.3에서 지원되는 태그 기술의 전체 목록은android.nfc.tech
를 참고하세요.
NFC 통신은 기기 하드웨어의 무선 기술에 의존하며 일부 Android 기기에는 없습니다. NFC를 지원하지 않는 Android 기기는 getDefaultAdapter(Context)
가 호출될 때 null 객체를 반환하고 context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC)
는 false
를 반환합니다. 그러나 NFC API는 기본 하드웨어 지원과 관계없이 항상 존재합니다.
NFC API를 사용하려면 애플리케이션이 매니페스트 파일에서 <uses-permission
android:name="android.permission.NFC">
를 선언하여 사용자에게 권한을 요청해야 합니다.
또한 개발자는 Google Play에서 필터링을 요청하여 NFC를 지원하지 않는 기기의 사용자에게 애플리케이션이 표시되지 않도록 할 수 있습니다. 필터링을 요청하려면 애플리케이션의 매니페스트에 <uses-feature android:name="android.hardware.nfc"
android:required="true">
를 추가합니다.
자세한 내용은 NFC 개발자 가이드를 참고하세요.
블루투스
Android 2.3.3에는 블루투스 비보안 소켓 연결을 위한 플랫폼 및 API 지원이 추가되었습니다. 이를 통해 애플리케이션은 인증용 UI를 제공하지 않을 수 있는 간단한 기기와 통신할 수 있습니다. 자세한 내용은 createInsecureRfcommSocketToServiceRecord(java.util.UUID)
및 listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID)
를 참고하세요.
그래픽
- 새
BitmapRegionDecoder
클래스를 사용하면 애플리케이션이 이미지에서 직사각형 영역을 디코딩할 수 있습니다. 이 API는 원본 이미지가 크고 애플리케이션에 이미지의 일부만 필요할 때 특히 유용합니다. BitmapFactory.Options
의 새로운inPreferQualityOverSpeed
필드를 통해 애플리케이션은 JPEG 디코딩에서 더 정확하지만 약간 느린 IDCT 메서드를 사용할 수 있습니다. 이렇게 하면 재구성된 이미지의 품질이 향상됩니다.
미디어 프레임워크
- 새
MediaMetadataRetriever
클래스는 입력 미디어 파일에서 프레임과 메타데이터를 검색하기 위한 통합 인터페이스를 제공합니다. MediaRecorder.AudioEncoder
및MediaRecorder.OutputFormat
에는 AMR 광대역 및 AAC 형식을 지정하기 위한 새로운 필드가 포함됩니다.
음성 인식
음성 인식 API에는 음성 검색 결과를 새로운 방식으로 관리할 수 있는 새로운 상수가 포함되어 있습니다. 새로운 상수는 음성 인식을 정상적으로 사용하는 데 필요하지 않지만 애플리케이션에서 음성 검색결과를 다양하게 표시하는 데 사용할 수 있습니다. 자세한 내용은 RecognizerResultsIntent
를 참고하세요.
API 수준
Android 2.3.3 플랫폼은 업데이트된 버전의 프레임워크 API를 제공합니다. Android 2.3.3 API에는 시스템 자체에 저장된 정수 식별자 10이 할당됩니다. 'API 수준'이라고 하는 이 식별자를 사용하면 시스템에서 애플리케이션을 설치하기 전에 애플리케이션이 시스템과 호환되는지 올바르게 판단할 수 있습니다.
Android 2.3.3에 도입된 API를 애플리케이션에서 사용하려면 Android 2.3.3 SDK 플랫폼에서 제공되는 Android 라이브러리에 대해 애플리케이션을 컴파일해야 합니다. 필요에 따라 애플리케이션의 매니페스트에 있는 <uses-sdk>
요소에 android:minSdkVersion="10"
속성을 추가해야 할 수도 있습니다. 애플리케이션이 Android 2.3 이상에서만 실행되도록 설계된 경우 이 속성을 선언하면 애플리케이션이 이전 버전의 플랫폼에 설치되지 않습니다.
자세한 내용은 API 수준이란 무엇인가요?를 참고하세요.