Mudanças entre as edições de "Laboratório de App Inventor 3"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 83: Linha 83:
 
:Adicione os componentes [http://beta.appinventor.mit.edu/learn/reference/components/social.html#PhoneCall ''PhoneCall''] e mais um "Button".  Mude seus nomes para ''Discador'' e ''DiscarNumero''.
 
:Adicione os componentes [http://beta.appinventor.mit.edu/learn/reference/components/social.html#PhoneCall ''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.
 
: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.
 
= Uso dos comnponentes ''Texting'' e ''tinyDB'' =
 
 
O componente [http://beta.appinventor.mit.edu/learn/reference/components/social.html#Texting ''Texting''] permite a recepção e envio de mensagens SMS, enquanto o componente [http://beta.appinventor.mit.edu/learn/reference/components/basic.html#TinyDB ''tinyDB''] permite o armazenamento de dados de forma persistente no seu telefone.
 
 
[http://beta.appinventor.mit.edu/learn/tutorials/broadcasterhub/broadcasterhub.html  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 [http://beta.appinventor.mit.edu/learn/reference/components/other.html#TinyWebDB ''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 =
 
= Telephones e versão de Android testados no IFSC-SJ com App Inventor =

Edição das 15h49min de 26 de abril de 2012

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

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 faça o login como root (você precisa ser sudoer para poder configurar o hardware) :

sudo -i </syntaxhighlight>

2. Adicione um arquivo udev rules que irá conter a configuração de USB para cada tipo de dispositivo que você deseja utilizar. 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> 5.Ligue o modo "USB Debugging" no seu Celular (ou Tablet).

No dispositivo vá até Configurações > Aplicações > Opções de Desenvolvimento > habilite USB debugging (nos dispositivos Android 4.0, Configurações > Aplicações > Opções de Desenvolvimento > habilite USB debuggin).

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.

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)