APIs do Android 2.3.3

Nível da API: 10

O Android 2.3.3 (GINGERBREAD_MR1) é uma pequena versão de recursos que adiciona várias melhorias e APIs à plataforma Android 2.3.

Para desenvolvedores, a plataforma Android 2.3.3 está disponível como um componente para download do SDK do Android. A plataforma disponível para download inclui uma biblioteca Android e uma imagem do sistema, além de um conjunto de skins de emulador e muito mais. Para começar a desenvolver ou testar no Android 2.3.3, use o Android SDK Manager para fazer o download da plataforma no seu SDK.

Visão geral da API

As seções abaixo fornecem uma visão geral técnica das novidades para os desenvolvedores na versão 2.3.3, incluindo novos recursos e mudanças na API de framework desde a versão anterior.

Comunicação a curta distância (NFC)

O Android 2.3.3 oferece suporte aprimorado e estendido à NFC para permitir que os aplicativos interajam com mais tipos de etiquetas de novas maneiras.

Um conjunto novo e abrangente de APIs oferece aos aplicativos acesso de leitura e gravação a uma ampla variedade de tecnologias de tag padrão, incluindo:

  • 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 ultraleve
  • Tags NDEF de fórum de NFC

A plataforma também fornece um protocolo limitado de comunicação ponto a ponto e API. As atividades em primeiro plano podem usar a API para registrar uma mensagem NDEF, que será enviada a outros dispositivos NFC quando eles se conectarem.

O envio avançado de tags agora oferece aos aplicativos mais controle sobre como e quando eles são iniciados, quando uma tag NFC é descoberta. Antes, a plataforma usava um envio de intent de etapa única para notificar os aplicativos interessados de que uma tag havia sido descoberta. A plataforma agora usa um processo de quatro etapas que permite que o aplicativo em primeiro plano controle um evento de tag antes que ele seja transmitido para qualquer outro aplicativo (android.nfc.NfcAdapter.enableForegroundDispatch()). O novo processo de envio também permite que os apps detectem conteúdo de tag específico e tecnologias de tag com base em duas novas ações de intent: android.nfc.action.NDEF_DISCOVERED e android.nfc.action.TECH_DISCOVERED.

A API NFC está disponível nos pacotes android.nfc e android.nfc.tech. As principais classes são:

  • NfcAdapter, que representa o hardware de NFC no dispositivo.
  • NdefMessage, que representa uma mensagem de dados NDEF, o formato padrão em que "registros" que transportam dados são transmitidos entre dispositivos e tags. Uma mensagem NDEF inclui alguns registros NDEF de tipos diferentes. Os apps podem receber essas mensagens de intents NDEF_DISCOVERED, TECH_DISCOVERED ou TAG_DISCOVERED.
  • NdefRecord, entregue em um NdefMessage, que descreve o tipo de dados que está sendo compartilhado e carrega os dados em si.
  • Tag, que representa uma tag verificada pelo dispositivo. Vários tipos de tags são compatíveis, com base na tecnologia de tags subjacente.
  • TagTechnology, uma interface que concede aos aplicativos acesso a propriedades de tags e operações de E/S com base nas tecnologias presentes nela. Para conferir uma lista completa de tecnologias de tag com suporte no Android 2.3.3, consulte android.nfc.tech.

A comunicação NFC depende da tecnologia sem fio no hardware do dispositivo e não está presente em todos os dispositivos Android. Os dispositivos Android que não têm suporte à NFC vão retornar um objeto nulo quando getDefaultAdapter(Context) for chamado, e context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC) retornará false. No entanto, a API NFC está sempre presente, independente do suporte de hardware.

Para usar a API NFC, os aplicativos precisam solicitar a permissão do usuário, declarando <uses-permission android:name="android.permission.NFC"> nos arquivos de manifesto.

Além disso, os desenvolvedores podem solicitar filtragem no Google Play para que os aplicativos não sejam detectáveis para usuários com dispositivos sem suporte à NFC. Para solicitar a filtragem, adicione <uses-feature android:name="android.hardware.nfc" android:required="true"> ao manifesto do aplicativo.

Para mais informações, leia o guia do desenvolvedor de NFC.

Bluetooth

O Android 2.3.3 adiciona suporte de plataforma e API para conexões de soquete não seguras do Bluetooth. Isso permite que os aplicativos se comuniquem com dispositivos simples que podem não oferecer uma interface para autenticação. Consulte createInsecureRfcommSocketToServiceRecord(java.util.UUID) e listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID) para mais informações.

Gráficos

  • Uma nova classe BitmapRegionDecoder permite que os aplicativos decodifiquem uma região retangular de uma imagem. A API é particularmente útil quando uma imagem original é grande e o aplicativo só precisa de partes da imagem.
  • Um novo campo inPreferQualityOverSpeed em BitmapFactory.Options permite que os aplicativos usem um método IDCT mais preciso, mas um pouco mais lento, na decodificação de JPEG. Isso, por sua vez, melhora a qualidade da imagem reconstruída.

Estrutura de mídia

Reconhecimento de fala

A API de reconhecimento de fala inclui novas constantes para permitir que você gerencie resultados da pesquisa por voz de novas maneiras. Embora as novas constantes não sejam necessárias para o uso normal do reconhecimento de fala, elas podem ser usadas para oferecer uma visualização diferente dos resultados da pesquisa por voz no seu app. Para mais informações, consulte RecognizerResultsIntent.

Nível de API

A plataforma Android 2.3.3 oferece uma versão atualizada da API do framework. A API do Android 2.3.3 recebe um identificador inteiro ( 10) que é armazenado no próprio sistema. Esse identificador, chamado de "nível da API", permite que o sistema determine corretamente se um aplicativo é compatível com ele antes da instalação.

Para usar as APIs introduzidas no Android 2.3.3, você precisa compilar o aplicativo na biblioteca Android fornecida na plataforma SDK do Android 2.3.3. Dependendo das suas necessidades, talvez também seja necessário adicionar um atributo android:minSdkVersion="10" ao elemento <uses-sdk> no manifesto do aplicativo. Se o aplicativo for projetado para ser executado apenas no Android 2.3 e versões mais recentes, a declaração do atributo vai impedir que o aplicativo seja instalado em versões anteriores da plataforma.

Para mais informações, leia O que é o nível da API?