Уровень API: 10
Android 2.3.3 ( GINGERBREAD_MR1
) — это небольшая функциональная версия, которая добавляет несколько улучшений и API-интерфейсов к платформе Android 2.3.
Для разработчиков платформа Android 2.3.3 доступна в виде загружаемого компонента Android SDK. Загружаемая платформа включает в себя библиотеку Android и образ системы, а также набор скинов эмулятора и многое другое. Чтобы начать разработку или тестирование для Android 2.3.3, используйте Android SDK Manager, чтобы загрузить платформу в свой SDK.
Обзор API
В разделах ниже представлен технический обзор того, что нового для разработчиков в версии 2.3.3, включая новые функции и изменения в API платформы по сравнению с предыдущей версией.
Связь ближнего радиуса действия (NFC)
Android 2.3.3 обеспечивает улучшенную и расширенную поддержку NFC, что позволяет приложениям по-новому взаимодействовать с большим количеством типов тегов.
Новый комплексный набор API-интерфейсов предоставляет приложениям доступ для чтения и записи к более широкому спектру стандартных технологий тегов, включая:
- НФК-А (ИСО 14443-3А)
- НФК-Б (ИСО 14443-3Б)
- NFC-F (JIS 6319-4)
- NFC-V (ИСО 15693)
- ИСО-ДЕП (ИСО 14443-4)
- МИФАРЕ Классик
- МИФАРЕ Сверхлегкий
- Теги NFC Forum NDEF
Платформа также предоставляет ограниченный протокол одноранговой связи и API. Действия переднего плана могут использовать API для регистрации сообщения NDEF, которое будет отправлено на другие устройства NFC при их подключении.
Расширенная диспетчеризация тегов теперь дает приложениям больше контроля над тем, как и когда они запускаются при обнаружении тега NFC. Раньше платформа использовала одноэтапную отправку намерений для уведомления заинтересованных приложений об обнаружении тега. Платформа теперь использует четырехэтапный процесс, который позволяет приложению переднего плана взять под контроль событие тега, прежде чем оно будет передано любым другим приложениям ( android.nfc.NfcAdapter.enableForegroundDispatch()
). Новый процесс отправки также позволяет приложениям прослушивать определенное содержимое тегов и технологии тегов на основе двух новых действий по намерению — android.nfc.action.NDEF_DISCOVERED
и android.nfc.action.TECH_DISCOVERED
.
API NFC доступен в пакетах android.nfc
и android.nfc.tech
. Ключевые классы:
-
NfcAdapter
, который представляет оборудование NFC на устройстве. -
NdefMessage
, который представляет сообщение данных NDEF, стандартный формат, в котором «записи», содержащие данные, передаются между устройствами и тегами. Сообщение NDEF определяет множество записей NDEF разных типов. Приложения могут получать эти сообщения из намеренийNDEF_DISCOVERED
,TECH_DISCOVERED
илиTAG_DISCOVERED
. -
NdefRecord
, доставленный вNdefMessage
, который описывает тип совместно используемых данных и содержит сами данные. -
Tag
, представляющий тег, сканируемый устройством. Поддерживаются несколько типов тегов в зависимости от базовой технологии тегов. -
TagTechnology
интерфейс, который предоставляет приложениям доступ к свойствам тега и операциям ввода-вывода на основе технологий, присутствующих в теге. Полный список технологий тегов, поддерживаемых в Android 2.3.3, см. наandroid.nfc.tech
.
Связь NFC основана на беспроводной технологии аппаратного обеспечения устройства и присутствует не на всех устройствах Android. Устройства Android, которые не поддерживают NFC, вернут нулевой объект при вызове getDefaultAdapter(Context)
, а 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 .
Bluetooth
В Android 2.3.3 добавлена поддержка платформы и API для незащищенных соединений через сокет Bluetooth. Это позволяет приложениям взаимодействовать с простыми устройствами, которые могут не предлагать пользовательский интерфейс для аутентификации. Дополнительные сведения см. createInsecureRfcommSocketToServiceRecord(java.util.UUID)
и listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID)
.
Графика
- Новый класс
BitmapRegionDecoder
позволяет приложениям декодировать прямоугольную область изображения. API особенно полезен, когда исходное изображение большое и приложению нужны только части изображения. - Новое поле
inPreferQualityOverSpeed
вBitmapFactory.Options
позволяет приложениям использовать более точный, но немного более медленный метод IDCT при декодировании JPEG. Это, в свою очередь, улучшает качество реконструированного изображения.
Медиа-фреймворк
- Новый класс
MediaMetadataRetriever
предоставляет унифицированный интерфейс для получения кадра и метаданных из входного медиафайла. -
MediaRecorder.AudioEncoder
иMediaRecorder.OutputFormat
включают новые поля для указания форматов AMR Wideband и AAC.
Распознавание речи
API распознавания речи включает новые константы, позволяющие по-новому управлять результатами голосового поиска. Хотя новые константы не нужны для обычного использования распознавания речи, вы можете использовать их, чтобы предложить другое представление результатов голосового поиска в вашем приложении. Дополнительные сведения см. в RecognizerResultsIntent
.
Уровень API
Платформа Android 2.3.3 предоставляет обновленную версию API платформы. API Android 2.3.3 присвоен целочисленный идентификатор — 10 , который хранится в самой системе. Этот идентификатор, называемый «уровнем API», позволяет системе правильно определить, совместимо ли приложение с системой, до его установки.
Чтобы использовать API-интерфейсы, представленные в Android 2.3.3, в вашем приложении, вам необходимо скомпилировать приложение с помощью библиотеки Android, которая предоставляется на платформе Android 2.3.3 SDK. В зависимости от ваших потребностей вам также может потребоваться добавить атрибут android:minSdkVersion="10"
к элементу <uses-sdk>
в манифесте приложения. Если ваше приложение предназначено для работы только на Android 2.3 и выше, объявление атрибута не позволит установить приложение на более ранние версии платформы.
Для получения дополнительной информации прочитайте «Что такое уровень API?».