DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia.

Clique aqui para saber como acessar este post

1) Torne-se um assinante MVP e por apenas R$ 59,90 por mês você terá acesso completo a todos os posts. Assinar MVP

2) Adquira Créditos: comprando R$ 180,00 em créditos esse post custará R$ 1,20. Comprar Créditos

post favorito     comentários
Java Magazine 102 - Índice

Android 4: Ice Cream Sandwich - Revista Java Magazine 102 - Parte 2

Neste artigo veremos as principais alterações do JBoss AS 7, principalmente em sua arquitetura e os modos Domain e Standalone.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo
Por: NELSON GLAUBER DE VASCONCELOS LEAL E BRUNO VINICIUS
Na primeira parte desse artigo, começamos a falar sobre o lançamento do Android 4, denominado Ice Cream Sandwich (ou simplesmente ICS), e seus novos recursos para os desenvolvedores. Também mostramos recursos já disponíveis nos tablets Android 3 (Honeycomb), e que agora também estão disponíveis nos smartphones. Dentre eles, abordamos: notificações ricas, onde podem ser exibidos avisos para o usuário de uma maneira mais amigável; App Widgets redimensionáveis e que exibem conteúdo em forma de lista na tela principal dos dispositivos; e a aceleração de hardware, que traz uma melhoria significativa no desempenho de aplicações que utilizam mais recursos gráficos, como jogos.
Nessa segunda parte, vamos abordar recursos exclusivos do ICS, como: a integração com agenda de compromissos; a possibilidade de aplicações de redes sociais complementarem informações dos contatos do aparelho com os dados do perfil da rede social; novos componentes visuais como o GridLayout e o Switch; e por fim, falaremos dos novos recursos multimídia e de conectividade, como o Wi-Fi Direct e o Bluetooth Health.
Acesso a API de calendário
Nesta nova versão, é possível criar aplicações que interajam com a aplicação de calendário nativa dos aparelhos Android, que permite o controle e agendamento de eventos. Esses eventos normalmente estão ligados a uma conta Exchange ou Google Calendar, por exemplo. O compartilhamento dos dados é feito através de um Content Provider, um recurso do próprio Android para compartilhar um banco de dados de uma aplicação com os demais aplicativos do SO. Com ele, é possível gerenciar eventos agendados em uma ou várias contas de calendário que estejam cadastradas no aparelho.
Para testarmos os exemplos que mostraremos a seguir, devemos ter uma conta de calendário cadastrada no aparelho. Aqui, usaremos uma conta do Hotmail. Assim, execute o emulador do Android 4 e, em seguida, abra a aplicação de Calendário. Pressione a tecla Menu e depois selecione Settings. Na tela que for exibida, selecione Add Account na parte superior direita. Feito isso, será apresentada a tela da Figura 1, então informe seu e-mail e senha e clique em Next.

Neste momento, será exibida a tela da Figura 2. Preencha com seus dados e com as opções apresentadas na imagem e depois clique em Next. Uma tela com mais algumas configurações de sincronização será carregada. Pode deixá-la com as alternativas padrão e clicar em Next. Enfim, a tela de confirmação será apresentada. Clique em Next e sua conta Exchange estará configurada.

Uma vez que estamos com a conta configurada, vamos ver como interagir com ela. Iniciaremos mostrando como inserir um evento utilizando a própria aplicação de calendário, e em seguida, faremos essa interação com o provedor de conteúdo (Content Provider) que ela disponibiliza.
O código da Listagem 1 mostra como abrir a aplicação de calendário para inserir um novo evento. Começamos criando uma Intent com a ação android.intent.action.INSERT, passando o tipo vnd.android.cursor.item/event, que funciona como um MIME TYPE de um evento (reunião, compromisso, etc.) para o Content Provider de Calendário. Depois, passamos uma série de parâmetros para preencher alguns campos do evento que iremos inserir no calendário, como: Título (linha 3), Local (linha 4), Hora Inicial e Final (linhas de 5 a 8), Nível de Acesso (linha 9) e as repetições desse evento (linha 11). Este último é o mais “complexo”, pois se trata de uma String que obedece a um padrão bem interessante:
• FREQ=WEEKLY – define que o evento se repete semanalmente;
• COUNT=4 – faz com que o evento se repita por quatro vezes;
• BYDAY=TU,TH – possibilita que o evento fique atrelado a dias da semana. No nosso caso, terça (TUesday) e quinta (THursday).

Deste modo, nosso evento terá quatro ocorrências, sendo agendado para ser executado semanalmente, nas terças e quintas. Logo, o evento terá a duração de duas semanas.

Listagem 1. Intent para inserir um compromisso na Agenda.
1. Intent it = new Intent(Intent.ACTION_INSERT);
2. it.setType("vnd.android.cursor.item/event");
3. it.putExtra(Events.TITLE, "Reunião com Cliente");
4. it.putExtra(Events.EVENT_LOCATION, "Escritório");

5. GregorianCalendar calendario = new GregorianCalendar(2011, 10, 30, 8, 0);
6. it.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
calendario.getTimeInMillis());

7. calendario.add(Calendar.HOUR_OF_DAY, 1);
8. it.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
calendario.getTimeInMillis());

9. it.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
10. it.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
11. it.putExtra(Events.RRULE, "FREQ=WEEKLY;COUNT=4;BYDAY=TU,TH");

12. startActivity(it);

Ao executarmos o código da Listagem 1 a aplicação de calendário será invocada exibindo a tela mostrada na Figura 3. Clique em Done e o evento (na sequência que informamos) será criado.

Além de abrir a aplicação de calendário para inserir um evento, a nova versão do Android permite fazê-lo diretamente do nosso programa. Ou seja, também é possível listar, excluir e editar eventos através do Content Provider disponibilizado pela aplicação de calendário.
Para listar os eventos, devemos adicionar a permissão android.permission.READ_CALENDAR no AndroidManifest.xml, e para inserir eventos diretamente do nosso código, a permissão android.permission.WRITE_CALENDAR, conforme podemos observar na Listagem 2.

Listagem 2. Permissões para acesso ao ContentProvider de Calendário.
1.
2.

A Listagem 3 mostra como listar as informações sobre os eventos a partir do Content Provider do calendário.

Listagem 3. Listando eventos do calendário.
1. private static final String TAG = "ICS";

2. private void listarCalendarios() {

3. String conta;
4. long id_conta;

5. // Dados da conta
6. Cursor cCalendar = getContentResolver().query(
CalendarContract.Calendars.CONTENT_URI,
new String[]{
CalendarContract.Calendars._ID,
CalendarContract.Calendars.ACCOUNT_NAME}, null, null,
CalendarContract.Calendars.DEFAULT_SORT_ORDER);

7. while (cCalendar.moveToNext()) {
8. id_conta = cCalendar.getLong(cCalendar.getColumnIndex(
CalendarContract.Calendars._ID));
9. conta = cCalendar.getString(cCalendar.getColumnIndex(
CalendarContract.Calendars.ACCOUNT_NAME));

10. Log.d(TAG,"Id Conta:"+ id_conta);
11. Log.d(TAG,"Account Name:"+ conta);

12. listarEventos(id_conta);
13. }
"

A exibição deste artigo foi interrompida

Este post está disponível para assinantes MVP.



A DevMedia é um portal para analistas, desenvolvedores de sistemas, gerentes e DBAs com milhares de artigos, dicas, cursos e videoaulas gratuitos e exclusivos para assinantes.

O que você achou deste post?
Publicidade
Serviços

Mais posts