APIs do Android 2.3.3

Nível da API:10

O Android 2.3.3 (GINGERBREAD_MR1) é uma versão de recurso pequena 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 para download inclui uma biblioteca e uma imagem do sistema Android, além de um conjunto de skins de emulador e 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 SDK.

Visão geral da API

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

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

O Android 2.3.3 oferece suporte aprimorado e estendido para NFC, permitindo que os aplicativos interajam com mais tipos de tags de novas maneiras.

Um novo conjunto abrangente de APIs oferece aos aplicativos acesso de leitura e gravação a uma variedade maior de tecnologias de tags 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 Ultralight
  • Tags NDEF do NFC Forum

A plataforma também oferece um protocolo de comunicação ponto a ponto e uma API limitados. 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 uma etapa para notificar os apps interessados de que uma tag havia sido descoberta. A plataforma agora usa um processo de quatro etapas que permite que o app em primeiro plano assuma o controle de um evento de tag antes que ele seja transmitido para qualquer outro app (android.nfc.NfcAdapter.enableForegroundDispatch()). O novo processo de envio também permite que os apps detectem conteúdo e tecnologias de tags específicas 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 classes principais são:

  • NfcAdapter, que representa o hardware NFC no dispositivo.
  • NdefMessage, que representa uma mensagem de dados NDEF, o formato padrão em que os "registros" que transportam dados são transmitidos entre dispositivos e tags. Uma mensagem NDEF contém muitos 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 compartilhados e os carrega.
  • Tag, que representa uma tag lida pelo dispositivo. Vários tipos de tags são aceitos com base na tecnologia de tag subjacente.
  • TagTechnology, uma interface que dá aos aplicativos acesso a propriedades de tag e operações de E/S com base nas tecnologias presentes na tag. Para conferir uma lista completa de tecnologias de tags compatíveis com o 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. Dispositivos Android que não oferecem suporte a NFC vão retornar um objeto nulo quando getDefaultAdapter(Context) for chamado, e context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC) vai retornar false. A API NFC está sempre presente, independentemente do suporte do 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 a filtragem no Google Play para que os apps não sejam descobertos por usuários com dispositivos que não oferecem suporte a 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 para desenvolvedores de NFC.

Bluetooth

O Android 2.3.3 adiciona suporte à 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 precisa apenas de partes dela.
  • 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 JPEG. Isso melhora a qualidade da imagem reconstruída.

Estrutura de mídia

Reconhecimento de fala

A API de reconhecimento de fala inclui novas constantes para que você possa gerenciar os 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 da API

A plataforma Android 2.3.3 oferece uma versão atualizada da API do framework. A API do Android 2.3.3 é designada com um identificador de número 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 o sistema antes de instalá-lo.

Para usar as APIs introduzidas no Android 2.3.3 no seu aplicativo, compile o aplicativo com a biblioteca do Android fornecida na plataforma do SDK do Android 2.3.3. Dependendo das suas necessidades, talvez 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 impede que o aplicativo seja instalado em versões anteriores da plataforma.

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