Laboratório de App Inventor 3

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Objetivos

Ao final da aula o aluno deverá, dentro do contexto do app inventor, ser capaz de:

  • usar os componentes PhoneCall e PhoneNumberPicker (tratamento de chamada e lista telefônica);
  • usar o componente Texting para o envio de mensagens SMS;
  • usar o component tinyDB para armazenar dados não voláteis no telefone;
  • saber como mudar nomes de componentes (botão Rename na janela principal do projeto);
  • saber(revisar) como usar o comando foreach para manipular listas;
  • rever o uso de listas;
  • usar o componente TinyWebDB para armazenar dados via Web.

Preparando o telefone Android para receber as aplicações

Uso dos componentes PhoneCall e PhoneNumberPicker

Os componentes PhoneCall e PhoneNumberPicker permitirão realizar chamadas telefônicas e acesso a agenda telefônica do Android.

Para um teste completo do tutorial que se segue, você deverá ter um telefone com Android conectado ao seu sistema. O emulador poderá ser usado mas as chamadas não serão efetuadas.

Acessar o tutorial PicCal pt.

OBS: Nos telefones testados o PhoneNumberPicker está apresentando problemas.


Exercício complementar: adicione um componente Label para mostrar o nome da pessoa que está sendo chamada. Acrescente um botão para reiniciar, apresentando o número e nome original do início do programa.

Exercício

Implementar o PicCal com a agenda telefônica implementada na aula passada.

Adicione os componentes PhoneCall e mais um "Button". Mude seus nomes para Discador e DiscarNumero.
Acrescente o código que faça com que ao acionar o Botão DiscarNumero, o número que está selecionado na agenda seja discado.

Dica de como configurar o computador para reconhecer os celulares ANDROID

As dicas detalhadas sobre a configuração podem ser encontradas no site Using Hardware Devices. Para configurar no Ubuntu, siga o seguinte procedimento:

1. Abra um terminal e digite (sudo -i) e sua senha (você precisa ser sudoer para poder configurar o hardware) :

sudo -i </syntaxhighlight>

2. Crie o arquivo /etc/udev/rules.d/51-android.rules

gedit /etc/udev/rules.d/51-android.rules </syntaxhighlight>

3. Insira nesse arquivo os fabricantes de celulares que deseja utilizar (pode adicionar todos para facilitar).

SUBSYSTEM==”usb”, ATTRS{idVendor}==”0502″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0B05″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”413C”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0489″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”091E”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”18D1″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”109B”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0BB4″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”12D1″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”24E3″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”2116″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0482″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”17EF”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”1004″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”22B8″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0409″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”2080″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0955″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”2257″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”10A9″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”1D4D”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0471″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”04DA”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”05C6″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”1F53″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”04E8″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”04DD”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0FCE”, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”2340″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”0930″, MODE=”0666″, GROUP=”plugdev” SUBSYSTEM==”usb”, ATTRS{idVendor}==”19D2″, MODE=”0666″, GROUP=”plugdev” </syntaxhighlight> 4. Reinicie os servidores de dispositivos cd /usr/google/appinventor/commands-for-Appinventor ./adb kill-server ./adb devices </syntaxhighlight>

Uso dos comnponentes Texting e tinyDB

O componente Texting permite a recepção e envio de mensagens SMS, enquanto o componente tinyDB permite o armazenamento de dados de forma persistente no seu telefone.

Acessar o tutorial Broadcast Hub

No programa implementado neste tutorial é mantida uma lista de números telefônicos para os quais serão prestados serviços de broadcast de mensagem SMS da seguinte forma:

  • Se uma mensagem é recebida de um número desconhecido então a aplicação responde com uma mensagem que convida o número para participar da lista;
  • Se uma mensagem “joinabc” é recebida então a aplicação coloca o número que enviou na lista de números;
  • Se uma mensagem é recebida de um número que já está na lista então a mensagem é enviada para todos os números da lista.

Uso do componente TinyWebDB

O componente TinyWebDB permite que uma aplicação app inventor armazene de forma persistente informações em uma base de dados acessada via web. Esta facilidade permitirá a comunicação entre aplicações de diferentes telefones (implementar jogos multi-usuários, por exemplo).

Por outro lado, é necessário ter um servidor web preparado para este serviço. O MIT fornece um servidor que é usado por default no componente TinyWebDB. Não é garantida a permanência de dados nesta base de dados já que é limitada a 1000 registros que são compartilhados por todos os usuários do sistema. Futuramente proporcionaremos nosso próprio servidor.

Exercício: Estude o componente TinyWebDB e modifique o tutorial anterior para que a mensagem de congratulations seja lida do servidor. Use a tag IFSC-Congratulation para acessar a mensagem.

Telephones e versão de Android testados no IFSC-SJ com App Inventor

  • Samsung S II - Android 2.3.3 (habilitar para inglês para funcionar sintetizador)
 Obs: tem problemas no picklist
  • Samsung Fit (gt-S5670L) - Android 2.2.1 (necessário instalar módulo sintetizador)