Уровень 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
В разделах ниже представлен технический обзор новых API в Android 4.0.3.
API социального потока в поставщике контактов
Приложения, которые используют данные социальных потоков, такие как обновления статуса и отметки, теперь могут синхронизировать эти данные с каждым из контактов пользователя, предоставляя элементы в потоке вместе с фотографиями для каждого.
Таблица базы данных, содержащая социальный поток отдельного контакта, определяется android.provider.ContactsContract.StreamItems, Uri для которого вложен в каталог ContactsContract.RawContacts
, которому принадлежат элементы потока. Каждая таблица социального потока включает в себя несколько столбцов для метаданных о каждом элементе потока, таких как значок, обозначающий источник (аватар), метка элемента, основное текстовое содержимое, комментарии об элементе (например, ответы других людей), и многое другое. Фотографии, связанные с потоком, хранятся в другой таблице, определенной android.provider.ContactsContract.StreamItemPhotos, которая доступна как подкаталог Uri android.provider.ContactsContract.StreamItems.
Дополнительные сведения см. в разделах 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
для текстовых фрагментов указывает, что автокоррекция будет применена к слову/тексту, который пользователь набирает/сочиняет. Этот тип предложения отображается по-другому, чтобы указать, что происходит автокоррекция.
Bluetooth
Новые общедоступные методы fetchUuidsWithSdp()
и getUuids()
позволяют приложениям определять функции (UUID), поддерживаемые удаленным устройством. В случае fetchUuidsWithSdp()
система выполняет обнаружение службы на удаленном устройстве, чтобы получить поддерживаемые UUID, а затем передает результат в виде намерения ACTION_UUID
.
набор инструментов пользовательского интерфейса
Новые методы setUserVisibleHint()
и getUserVisibleHint()
позволяют фрагменту установить подсказку о том, видим ли он в данный момент пользователю. Система откладывает запуск фрагментов, которые не видны пользователю, до тех пор, пока не запустятся загрузчики видимых фрагментов. Подсказка видимости по умолчанию имеет значение «истина».
Графика
- Новый метод
setDefaultBufferSize(int, int)
вSurfaceTexture
устанавливает размер буферов изображения по умолчанию. Этот метод можно использовать для установки размера изображения при создании изображений с помощьюCanvas
(черезlockCanvas(Rect)
) или OpenGL ES (через EGLSurface). - Добавляет определения для перечислений расширения GL_OES_EGL_image_external OpenGL ES —
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 озвучивание текста, введенного в поля пароля, даже если гарнитура не используется. По умолчанию текст пароля не произносится, если не используется гарнитура.
Преобразование текста в речь
- Добавляет новый метод
getFeatures()
для запроса и включения поддержки TTS в сети. - Добавляет новый класс прослушивателя
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: разрешите адаптеру синхронизации читать и записывать данные социального потока для контакта в общем поставщике контактов.
Подробное описание всех изменений API в Android 4.0.3 (уровень API 15) см. в отчете о различиях API .
Уровень API
API Android 4.0.3 присвоен целочисленный идентификатор — 15 , который хранится в самой системе. Этот идентификатор, называемый «уровнем API», позволяет системе правильно определить, совместимо ли приложение с системой, до его установки.
Чтобы использовать API-интерфейсы, представленные в Android 4.0.3, в вашем приложении, вам необходимо скомпилировать приложение для платформы Android, поддерживающей уровень API 15 или выше. В зависимости от ваших потребностей вам также может потребоваться добавить атрибут android:minSdkVersion="15"
к элементу <uses-sdk>
.
Дополнительную информацию см. в документе «Уровни API» .