APIs do Android 2.3.3

Nível da API: 10

O Android 2.3.3 (GINGERBREAD_MR1) é uma pequena versão de recurso 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 Android e uma imagem do sistema, além de um conjunto de skins do 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 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, 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 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. Anteriormente, a plataforma usava um envio de intent de etapa única para notificar os aplicativos interessados de que uma tag foi descoberta. A plataforma agora usa um processo de quatro etapas que permite que o aplicativo em primeiro plano assuma o controle de um evento de tag antes que ele seja transmitido para outros aplicativos (android.nfc.NfcAdapter.enableForegroundDispatch()). O novo processo de envio também permite que os apps detectem conteúdo de tag e tecnologias de tag específicos, 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 contém determinados registros NDEF de tipos diferentes. Os aplicativos 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 tag subjacente.
  • TagTechnology, uma interface que dá aos aplicativos acesso às propriedades de tags e operações de E/S com base nas tecnologias presentes na tag. Para ver uma lista completa das 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 são compatíveis com 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, independentemente do suporte de hardware subjacente.

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, de modo que os apps não sejam detectáveis para 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 ver mais informações, leia o guia do desenvolvedor de NFC.

Bluetooth

O Android 2.3.3 adiciona compatibilidade com plataforma e API para conexões de soquete Bluetooth não seguras. Isso permite que os aplicativos se comuniquem com dispositivos simples que não ofereçam uma IU 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 de JPEG. Isso, por sua vez, melhora a qualidade da imagem reconstruída.

Framework de mídia

Reconhecimento de fala

A API Speech-recognition inclui novas constantes para permitir que você gerencie 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 aplicativo. Para saber mais, consulte RecognizerResultsIntent.

Nível de API

A plataforma Android 2.3.3 fornece 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 de 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, você precisa compilar o aplicativo na biblioteca Android fornecida na plataforma SDK do Android 2.3.3. Dependendo do que você precisa, talvez também seja necessário adicionar um atributo android:minSdkVersion="10" ao elemento <uses-sdk> no manifesto do aplicativo. Se o aplicativo foi projetado para ser executado apenas no Android 2.3 e versões mais recentes, a declaração do atributo evita que o aplicativo seja instalado em versões anteriores da plataforma.

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