Mudanças entre as edições de "Laboratório de App Inventor 3"
Linha 26: | Linha 26: | ||
'''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 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 [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. | ||
+ | ==Dica de como configurar o computador para reconhecer os celulares ANDROID== | ||
+ | As dicas detalhadas sobre a configuração podem ser encontradas no site [http://developer.android.com/guide/developing/device.html 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) : | ||
+ | <code> | ||
+ | sudo -i | ||
+ | </syntaxhighlight> | ||
+ | :2. Crie o arquivo /etc/udev/rules.d/51-android.rules | ||
+ | <code> | ||
+ | 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). | ||
+ | <code> | ||
+ | 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 | ||
+ | <code> | ||
+ | cd /usr/google/appinventor/commands-for-Appinventor | ||
+ | ./adb kill-server | ||
+ | ./adb devices | ||
+ | </syntaxhighlight> | ||
= Uso dos comnponentes ''Texting'' e ''tinyDB'' = | = Uso dos comnponentes ''Texting'' e ''tinyDB'' = |
Edição das 13h24min 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
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.
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)