APIs do Android 2.3.4

Nível da API: 10

O Android 2.3.4 (GINGERBREAD_MR1) é uma versão de manutenção que adiciona várias correções de bugs e patches à plataforma Android 2.3, sem nenhuma mudança de API em relação ao Android 2.3.3. Além disso, o Android 2.3.4 oferece suporte à API Open Accessory para dispositivos móveis por meio da Biblioteca Open Accessory opcional.

Para desenvolvedores, a plataforma Android 2.3.4 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 aparências do emulador e muito mais. Para começar a desenvolver ou testar no Android 2.3.4, use o Android SDK Manager para fazer o download da plataforma no seu SDK.

Visão geral da API

O Android 2.3.4 oferece para aplicativos a mesma API de framework que o Android 2.3.3 (API de nível 10). Para ver um resumo da API, consulte as Notas da versão do Android 2.3.3.

Abrir biblioteca de acessórios

Open Accessory (link em inglês) é um novo recurso para integrar periféricos conectados a aplicativos em execução na plataforma. Esse recurso é baseado em uma pilha USB (Universal Serial Bus) integrada à plataforma e em uma API exposta aos aplicativos. Periféricos que se conectam a dispositivos Android como acessórios se conectam como hosts USB.

O Open Accessory foi introduzido no Android 3.1 (API de nível 12), mas está disponível para dispositivos que executam o Android 2.3.4 por meio de uma biblioteca externa opcional, a Open Accessory Library. A biblioteca expõe uma API de framework que permite que os aplicativos descubram, se comuniquem e gerenciem vários tipos de dispositivos conectados via USB. Ela também fornece a implementação da API em partes da plataforma Android que não estão diretamente expostas a aplicativos no Android 2.3.4.

A Open Accessory Library é opcional em qualquer dispositivo. Os fabricantes de dispositivos podem incluir ou excluir a Biblioteca Open Accessory nos produtos. A biblioteca é compatível com versões futuras do Android 3.1, então os aplicativos desenvolvidos com o Android 2.3.4 serão executados corretamente em dispositivos com o Android 3.1, se esses dispositivos forem compatíveis com acessórios USB.

A API fornecida pela Biblioteca Open Accessory é baseada na API Open Accessory fornecida no Android 3.1. Na maioria das áreas, é possível usar as mesmas técnicas e APIs. No entanto, o desenvolvimento para a Biblioteca Open Accessory no Android 2.3.4 difere da API USB padrão destas maneiras:

  • Conseguir um objeto UsbManager: para receber um objeto UsbManager ao usar a biblioteca de complementos, use o método auxiliar getInstance() em vez de getSystemService(). Por exemplo:

    Kotlin

    val manager = UsbManager.getInstance(this)
    

    Java

    UsbManager manager = UsbManager.getInstance(this);
    
  • Extrair um UsbAccessory de uma intent filtrada: quando você filtra um dispositivo ou acessório conectado com um filtro de intent, o objeto UsbAccessory fica dentro da intent transmitida ao app. Se você estiver usando a biblioteca de complementos, poderá acessar o objeto UsbAccessory da seguinte maneira:

    Kotlin

    val accessory = UsbManager.getAccessory(intent)
    

    Java

    UsbAccessory accessory = UsbManager.getAccessory(intent)
    
  • Sem suporte a host USB: o Android 2.3.4 e a Open Accessory Library não oferecem suporte ao modo de host USB (por exemplo, por meio de UsbDevice), embora o modo de host USB seja compatível com o Android 3.1. Um dispositivo com Android 2.3.4 não pode funcionar como um host USB. A biblioteca permite que o dispositivo Android funcione apenas como periférico, com o acessório conectado funcionando como host USB (por UsbAccessory).

Para desenvolver apps usando a Biblioteca Open Accessory, você precisa de:

  • A versão mais recente das Ferramentas do SDK do Android.
  • A versão mais recente do complemento de APIs do Google, que inclui a própria biblioteca (para vinculação)
  • Um dispositivo de hardware real que executa o Android 2.3.4 (ou Android 3.1) com suporte a acessórios USB, para testes de tempo de execução em dispositivos conectados

Para uma discussão completa sobre como desenvolver aplicativos que interagem com acessórios USB, consulte a documentação do desenvolvedor relacionada.

Além disso, os desenvolvedores podem solicitar a filtragem no Google Play para que os apps não fiquem disponíveis para usuários com dispositivos que não oferecem o suporte adequado aos acessórios. Para solicitar a filtragem, adicione o elemento abaixo ao manifesto do aplicativo:

<uses-feature
  android:name="android.hardware.usb.accessory"
  android:required="true">

Nível de API

A plataforma Android 2.3.4 não incrementa o nível da API. Ela usa o mesmo nível de API que o Android 2.3.3, API de nível 10.

Para usar as APIs introduzidas na API de nível 10, você precisa compilar o aplicativo na biblioteca do Android fornecida na versão mais recente do complemento de APIs do Google, que também inclui a biblioteca Open Accessory.

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 foi projetado para ser executado apenas no Android 2.3.3 e versões mais recentes, a declaração do atributo evita que o aplicativo seja instalado em versões anteriores da plataforma.

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