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 intentsNDEF_DISCOVERED
,TECH_DISCOVERED
ouTAG_DISCOVERED
.NdefRecord
, entregue em umNdefMessage
, 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, consulteandroid.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
emBitmapFactory.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
- Uma nova classe
MediaMetadataRetriever
oferece uma interface unificada para recuperar frames e metadados de um arquivo de mídia de entrada. MediaRecorder.AudioEncoder
eMediaRecorder.OutputFormat
incluem novos campos para especificar formatos AMR Wideband e AAC.
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?