APIs do Android 4.0.3

Nível da API: 15

O Android 4.0.3 (ICE_CREAM_SANDWICH_MR1) é uma versão incremental da família de plataformas Android 4.0 (ICE_CREAM_SANDWICH). Esta versão inclui novos recursos para usuários e desenvolvedores, mudanças na API e várias correções de bugs.

Para desenvolvedores, a plataforma Android 4.0.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 4.0.3, use o Android SDK Manager para fazer o download da plataforma no seu SDK.

Visão geral da API

As seções abaixo oferecem uma visão geral técnica das novas APIs do Android 4.0.3.

API Social stream no Provedor de contatos

Os aplicativos que usam dados de fluxos sociais, como atualizações de status e check-ins, agora podem sincronizar esses dados com cada um dos contatos do usuário, fornecendo itens em um fluxo com fotos de cada um.

A tabela de banco de dados que contém o stream de rede social de um contato individual é definida por android.provider.ContactsContract.StreamItems, o URI para que está aninhado no diretório ContactsContract.RawContacts a que os itens do stream pertencem. Cada tabela de stream social inclui várias colunas para metadados sobre cada item do fluxo, como um ícone que representa a origem (um avatar), um rótulo para o item, o conteúdo do texto principal, comentários sobre o item (como respostas de outras pessoas) e muito mais. Fotos associadas a um stream são armazenadas em outra tabela, definida por android.provider.ContactsContract.StreamItemPhotos, que está disponível como um subdiretório do URI android.provider.ContactsContract.StreamItems.

Para saber mais, consulte android.provider.ContactsContract.StreamItems e android.provider.ContactsContract.StreamItemPhotos.

Para ler ou gravar itens de fluxo de redes sociais para um contato, um aplicativo precisa solicitar permissão do usuário declarando <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> e/ou <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> nos arquivos de manifesto.

Provedor de agenda

Widgets da tela inicial

A partir do Android 4.0, os widgets da tela inicial não podem mais incluir o próprio padding. Em vez disso, o sistema agora adiciona padding automaticamente para cada widget, com base nas características da tela atual. Isso leva a uma apresentação mais uniforme e consistente de widgets em uma grade. Para auxiliar os aplicativos que hospedam widgets de tela inicial, a plataforma fornece um novo método getDefaultPaddingForWidget(). Os aplicativos podem chamar esse método para receber o padding definido pelo sistema e contabilizá-lo ao calcular o número de células a serem alocadas ao widget.

Verificação ortográfica

  • Para apps que acessam serviços do corretor ortográfico, um novo método cancel() cancela as tarefas pendentes e em execução do corretor ortográfico em uma sessão.
  • Para serviços de corretor ortográfico, uma nova sinalização de sugestões, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, permite que os serviços diferenciem sugestões de maior confiança das de menor confiança. Por exemplo, um corretor ortográfico pode definir a sinalização se uma palavra de entrada não estiver no dicionário do usuário, mas tiver sugestões prováveis, ou não definir a sinalização se uma palavra de entrada não estiver no dicionário e tiver sugestões que provavelmente serão menos úteis.

    Os apps conectados ao corretor ortográfico podem usar a sinalização RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS em combinação com outros atributos de sugestão, bem como os métodos getSuggestionsAttributes() e getSuggestionsCount(), para determinar se as palavras de entrada devem ser marcadas como erros de digitação e oferecer sugestões.

  • Um novo estilo FLAG_AUTO_CORRECTION para períodos de texto indica que a correção automática está prestes a ser aplicada a uma palavra/texto que o usuário está digitando/compondo. Esse tipo de sugestão é renderizado de maneira diferente para indicar que a correção automática está acontecendo.

Bluetooth

Os novos métodos públicos fetchUuidsWithSdp() e getUuids() permitem que os apps determinem os recursos (UUIDs) compatíveis com um dispositivo remoto. No caso de fetchUuidsWithSdp(), o sistema realiza uma descoberta de serviço no dispositivo remoto para receber os UUIDs com suporte e transmite o resultado em uma intent ACTION_UUID.

Kit de ferramentas de interface

Os novos métodos setUserVisibleHint() e getUserVisibleHint() permitem que um fragmento defina uma dica se está visível ao usuário no momento. O sistema adia o início de fragmentos que não são visíveis ao usuário até que os carregadores de fragmentos visíveis sejam executados. A dica de visibilidade é "true" por padrão.

Gráficos

Acessibilidade

Conversão texto em voz

  • Adição do novo método getFeatures() para consultar e ativar o suporte a TTS da rede.
  • Adiciona uma nova classe de listener, UtteranceProgressListener, que os mecanismos podem registrar para receber notificações de erros de síntese de fala.

Database

  • Uma nova classe CrossProcessCursorWrapper permite que os provedores de conteúdo retornem resultados de uma consulta entre processos com mais eficiência. A nova classe é um elemento básico útil para unir cursores que serão enviados para processos remotamente. Ela também pode transformar objetos Cursor normais em objetos CrossProcessCursor de forma transparente.

    A classe CrossProcessCursorWrapper corrige problemas comuns de desempenho e bugs que os aplicativos encontravam ao implementar provedores de conteúdo.

  • O construtor CursorWindow(java.lang.String) agora usa uma string de nome como entrada. O sistema não distingue mais entre janelas de cursor locais e remotas. Portanto, o uso de CursorWindow(boolean) foi descontinuado.

Intents

Adiciona novas categorias para segmentar tipos comuns de aplicativos no dispositivo, como CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS e muito mais.

Câmera

Permissões

Estas são as novas permissões:

  • android.Manifest.permission#READ_SOCIAL_STREAM e android.Manifest.permission#WRITE_SOCIAL_STREAM: permite que um adaptador de sincronização leia e grave dados de streaming social para um contato no Provedor de contatos compartilhado.

Para ter uma visão detalhada de todas as mudanças na API no Android 4.0.3 (nível 15 da API), consulte o Relatório de diferenças da API.

Nível de API

A API do Android 4.0.3 recebe um identificador de número inteiro (15), 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 4.0.3 no aplicativo, você precisa compilá-lo em uma plataforma Android com suporte ao nível 15 da API ou mais recente. Dependendo das suas necessidades, talvez também seja necessário adicionar um atributo android:minSdkVersion="15" ao elemento <uses-sdk>.

Para mais informações, consulte o documento Níveis de API.