Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Remobile

2,642 views

Published on

Palestra realizada na primeira edição do Remobile sobre desenvolvimento Python para aparelhons Symbian S60 (Palestrante: Marcel Caraciolo)

Published in: Education

Remobile

  1. 1. Introdução à programação Python para smartphones Nokia S60 Marcel Pinheiro Caraciolo
  2. 2. Quem é o palestrante ? <ul><li>Marcel Pinheiro Caraciolo </li></ul><ul><ul><li>Atual : Mestrando em ciência da computação pelo CIN/UFPE. </li></ul></ul><ul><ul><li>Engenheiro da computação pela POLI/UPE. </li></ul></ul><ul><ul><li>Experiência: TIM (analista de sistemas), I2 Tecnologia (consultor de desenvolvimento) , C.E.S.A.R (engenheiro de sistemas). </li></ul></ul><ul><li>Experiência com computação móvel e inteligente: </li></ul><ul><ul><li>Blog Mobidéia (http://mobideia.blogspot.com) – Mobile </li></ul></ul><ul><ul><li>Blog A.I. in Motion (http://aimotion.blogspot.com) – I.A. </li></ul></ul><ul><li>Experiência com Python há quase 1 ano. </li></ul>
  3. 3. Agenda <ul><li>Smartphones Symbian S60 </li></ul><ul><li>Python / Python para S60 (PyS60) </li></ul><ul><li>Primeiros passos com o PyS60. </li></ul><ul><ul><li>Arquivos e instaladores. </li></ul></ul><ul><ul><li>Instalação do interpretador e execução de scripts Python. </li></ul></ul><ul><li>Conceitos básicos de desenvolvimento </li></ul><ul><ul><li>Ferramentas, emuladores, etc. </li></ul></ul><ul><ul><li>Criação de um simples aplicativo executável. </li></ul></ul><ul><li>PyS60 API Tour e Exemplos </li></ul><ul><li>Conclusão </li></ul>
  4. 4. Smartphones Symbian S60
  5. 5. O que são celulares S60? <ul><li>Smartphones - “celulares inteligentes” - com velocidade de um PC@1998. </li></ul><ul><li>Sistema operacional Symbian (consórcio mantido por diversos fabricantes de dispositivos móveis). </li></ul><ul><ul><li>2008 – Nokia adquire o Symbian e funda o “ Symbian Foundation ”. </li></ul></ul><ul><li>Plataforma Série 60: Symbian + UI + recursos adicionais. </li></ul>
  6. 6. Smartphones Nokia <ul><li>Grande parte dos celulares S60 são da Nokia. </li></ul><ul><li>Concorrentes diretos do Symbian S60: </li></ul><ul><ul><li>Baseados em Symbian: S80, S90, UIQ. </li></ul></ul><ul><ul><li>Não baseados em Symbian: Android OS, Windows Mobile, Mac OS X (Iphone) - todos não smartphones Nokia. </li></ul></ul><ul><li>Nova linha de aparelhos S60 “TouchScreen” : </li></ul><ul><ul><li>Nokia 5800 XpressMusic, N97 . </li></ul></ul>
  7. 7. Por que desenvolver para S60 ? <ul><li>Mais de 100 milhões de celulares vendidos. </li></ul><ul><li>Previsões apontam como plataforma dominante para os próximos 5-10 anos. </li></ul><ul><li>Várias opções de linguagem: J2ME, C++, Python, FlashLite, JavaScript, C, etc. </li></ul><ul><li>Plataforma aberta e SDK gratuito </li></ul><ul><li>Existe uma comunidade de desenvolvedores </li></ul><ul><li>Dispositivos são computacionalmente poderosos (evita ter de ”escovar bit”) </li></ul>
  8. 8. Python / PyS60
  9. 9. <ul><li>Pelas virtudes naturais do Python :) </li></ul><ul><li>Desenvolvimento C++ para dispositivos móveis é ainda mais árido que para desktop. </li></ul><ul><ul><li>Desenvolvimento no PC, uso real no celular; computadores completamente diferentes! </li></ul></ul><ul><ul><li>Emulador Symbian no PC diverge do celular </li></ul></ul><ul><ul><li>Pouco software livre e/ou aberto para consulta </li></ul></ul><ul><ul><li>Muitas diferenças entre versões do S60, mesmo entre minor releases (”feature packs”)‏ </li></ul></ul>… E por que usar o Python para S60?
  10. 10. … . E porque usar o Python para S60? <ul><li>API mais estável, pois as diferenças entre versões são resolvidas no pacote Python </li></ul><ul><li>Boa parte das bibliotecas padrão do Python está disponível no PyS60 </li></ul><ul><li>A depuração no dispositivo é mais fácil </li></ul><ul><li>Torna muito mais fácil o acesso a recursos como câmera ou SMS, em relação a C++ </li></ul><ul><li>Comunidade muito mais atuante </li></ul><ul><ul><li>http://pys60.sourceforge.net </li></ul></ul>
  11. 11. Sobre Python, a linguagem… <ul><li>Linguagem de programação open source criada por Guido Van Rossum desde 1990. </li></ul><ul><li>Objetivos: maximizar a produtividade e a extensibilidade na programação </li></ul><ul><ul><li>Ênfase especial na leitura e compreensão do código. </li></ul></ul><ul><ul><li>“ Linguagem pequena, imensa biblioteca” </li></ul></ul><ul><ul><li>Fácil extensão com código nativo. </li></ul></ul><ul><li>Linguagem de script moderna, orientada a objetos, bem completa com funcionalidades como classes, herança, objetos, exceções, gerenciamento automático de memória, threads, etc. </li></ul>
  12. 12. A “cara” de Python def get_quote(acao): url = &quot;http://www.bovespa.com.br/...” pagina = urllib.urlopen(url).read() inicio = pagina.find(&quot;R$&quot;)+2 final = pagina.find(&quot;</td>&quot;, inicio) cotacao = s[inicio:final].strip() try: valor = int(cotacao)/100.0 except ValueError: valor = 0 # deixe como zero return valor
  13. 13. Python para S60 (PyS60) <ul><li>Simplifica o desenvolvimento de aplicações e é uma solução alternativa para APIs Symbian C++ </li></ul><ul><li>Usada de diversas maneiras: </li></ul><ul><ul><li>Aplicativos GUI </li></ul></ul><ul><ul><li>Aplicativos em background (“daemon”) </li></ul></ul><ul><ul><li>Inseridos no seu aplicativo C++ </li></ul></ul><ul><li>Caminho mais fácil de desenvolver aplicativos nativos para o Symbian. </li></ul><ul><li>Implementação Open source, de fácil extensão com a API Python/C. </li></ul>
  14. 14. Python para S60 (PyS60) <ul><li>Versões até 1.4.x - Python 2.2.2 </li></ul><ul><li>Versões 1.9.x – Python 2.5.0 </li></ul><ul><li>Consiste de: </li></ul><ul><ul><li>Python runtime: </li></ul></ul><ul><ul><ul><li>Interpretador DLL Python </li></ul></ul></ul><ul><ul><ul><li>Bibliotecas e módulos padrões e proprietárias do Python . </li></ul></ul></ul><ul><ul><li>Python Script Shell: </li></ul></ul><ul><ul><ul><li>Ambiente de execução para os scripts em Python </li></ul></ul></ul><ul><li>Kit de desenvolvimento para escrita de extensões e testes de script no PC (Apenas Windows) </li></ul>
  15. 15. Python para S60 (PyS60) – Bibliotecas <ul><li>Suporta a maioria das bibliotecas padrões de Python – alguns módulos podem ser adicionados direto no PyS60 sem modificações. </li></ul><ul><li>Suporta maioria das bibliotecas do S60 </li></ul><ul><ul><li>e32 </li></ul></ul><ul><ul><li>sysinfo </li></ul></ul><ul><ul><li>appuifw </li></ul></ul><ul><ul><li>graphics </li></ul></ul><ul><ul><li>camera </li></ul></ul><ul><ul><li>keycapture </li></ul></ul><ul><ul><li>audio </li></ul></ul><ul><ul><li>telephone </li></ul></ul><ul><ul><li>messaging </li></ul></ul>
  16. 16. Primeiros passos com o PyS60
  17. 17. Python nos celulares Symbian S60 <ul><li>Projeto hospedado no site SourceForge: http://sourceforge.net/projects/pys60 </li></ul><ul><li>Novas versões no site do Garage Maemo: </li></ul><ul><li>https://garage.maemo.org/projects/pys60/ </li></ul><ul><ul><li>Código-Fonte </li></ul></ul><ul><ul><li>Documentação </li></ul></ul><ul><ul><li>Diversas distribuições: </li></ul></ul><ul><ul><ul><li>Interpretador / Script Shell </li></ul></ul></ul><ul><ul><ul><li>SDK </li></ul></ul></ul><ul><ul><ul><li>Versões: 1º Ed. , 2º Ed. , 3ºEd. (FP1, FP2). </li></ul></ul></ul><ul><ul><ul><li>Site com informações sobre as versões do seu aparelho: </li></ul></ul></ul><ul><ul><ul><ul><li>http://www.forum.nokia.com/devices/matrix_all_1.html </li></ul></ul></ul></ul>
  18. 18. O que está disponível para download ? <ul><li>Todo o código fonte do pyS60 em C++/Open C </li></ul><ul><li>Interpretador pyS60 para versão PC/ mobile: </li></ul><ul><ul><li>PythonForS60_1_x_x_<yourS60version>.SIS para celulares </li></ul></ul><ul><ul><li>PythonForS60_1_x_x_SDK_<yourS60SDK>.zip para executar scripts Python em emuladores S60 e compilar suas próprias extensões (Apenas ambiente Windows). </li></ul></ul><ul><li>pyS60 Script Shell: </li></ul><ul><ul><li>Ideal para testes e desenvolvimento de scripts. </li></ul></ul><ul><ul><li>PythonScriptShell_1_x_x_<yourS60version>.SIS </li></ul></ul><ul><ul><li>Disponível também em versão não assinada “unsigned” ,caso novas funcionalidades sejam requeridas. </li></ul></ul><ul><li>Documentação e API. </li></ul><ul><li>Release notes (As novidades da versão!) </li></ul>
  19. 19. Primeiros passos – PyS60 em um celular <ul><li>Instale o pacote do interpretador PyS60. No nosso exemplo seria um Nokia N95 que é um S60 3 rd . Edição FP1 então instalamos o PythonForS60_1_4_5_3rd.SIS </li></ul><ul><li>Você pode instalar pelo PC Suite (Windows) ou enviando o arquivo .SIS via bluetooth (Linux ou Mac) ou ainda pelo browser do seu aparelho. </li></ul><ul><li>Instalado o interpretador, o próximo passo é instalar o PyS60 Script Shell. </li></ul>
  20. 20. Primeiros passos – PyS60 em um celular <ul><li>Instale o PyS60 script Shell. No nosso exemplo, usamos o Nokia N95 que é um aparelho 3 rd . Edição FP1, então instalamos PythonScriptShell_1_4_5_3rd.SIS </li></ul><ul><li>Script shell é extremamente útil para executar e testar seus scripts, através de um console. </li></ul><ul><li>O aplicativo Python é visível no menu principal de aplicativos do seu aparelho. </li></ul>
  21. 21. Primeiros passos – PyS60 em um celular <ul><li>Run script -> Lê os scripts armazenados em E:Python and C:Python </li></ul><ul><li>Há um console interativo se desejar editar código direto no aparelho. </li></ul><ul><li>Bluetooth Console para edição remota de seus scripts Python. </li></ul><ul><li>Não necessário para aplicativos executáveis em Python! </li></ul>
  22. 22. Testando PyS60 scripts <ul><li>Inicie o PyS60 Script Shell </li></ul><ul><li>Clique em Options / Run Script </li></ul><ul><li>Escolha um dos scripts na lista e pressione ‘OK’ </li></ul>
  23. 23. Conceitos básicos de desenvolvimento
  24. 24. Ferramentas de desenvolvimento-Windows <ul><li>Instalação e execução do interpretador Python na sua máquina  ( http://www.python.org/download/ ) - Python 2.5.x </li></ul><ul><li>S60 Platform SDKs for Symbian OS, for C++  Provê o ambiente de emulação do Symbian no PC para a criação e execução de scripts em Python e a criação de extensões ( www.forum.nokia.com/tools ). </li></ul><ul><li>Pacote PythonForS60_1_x_x_SDK_3rdEd.zip para ativar o Python no S60 SDK. </li></ul><ul><li>Ferramenta para empacotar seus scripts Python em arquivos instaláveis .SIS (Ensymble - http://www.nbl.fi/~nbl928/ensymble.html ) ou Py2sis (vem junto com o SDK). </li></ul><ul><li>Se você estiver usando o Ensymble, baixe o utilitário de linhas de comando OpenSSL -> http://www.stunnel.org/download/binaries.html </li></ul><ul><li>Dispositivo S60 com cartão de memória (opcional) </li></ul><ul><li>Nokia PC Suite – (opcional) </li></ul>
  25. 25. Ferramentas de desenvolvimento-Windows <ul><li>Como instalar o SDK para PyS60: </li></ul><ul><li>Faça o download do s60 __??__sdk._fp?.zip, extraia seu conteúdo e execute o setup.exe </li></ul><ul><li>Faça o download do PythonForS60_1_x_x_SDK_3rdEd.zip , extraia seu conteúdo (sdk_files.zip) e substitua a pasta na raiz do Symbian. </li></ul>
  26. 26. Ciclo básico de desenvolvimento- Windows <ul><li>Crie um arquivo .py utilizando qualquer editor de texto de sua preferência </li></ul><ul><ul><li>(Não há uma IDE específica para PyS60  ) </li></ul></ul><ul><li>Salve o mesmo em C:Symbian9.xS60_xrd_xxEpoc32winscwcpython </li></ul><ul><li>Inicie o emulador S60 SDK </li></ul><ul><li>Clique em Python Script Shell, e selecione seu script </li></ul><ul><li>Clique em “Select” para executá-lo </li></ul>import appuifw appuifw.note(u’Hello World!’)
  27. 27. Ferramentas de desenvolvimento - Linux <ul><li>Alguma versão do Python instalada (Possivelmente sua distribuição Linux já deve ter uma! ) </li></ul><ul><li>Não há um ambiente de emulação oficial  (GNUPOC) </li></ul><ul><li>Ferramenta de criação de arquivos instaláveis .SIS -(Ensymble - http://www.nbl.fi/~nbl928/ensymble.html ) + utilitário OpenSSL </li></ul><ul><li>PyS60-compat – Biblioteca para emulação de algumas APIs do PyS60 </li></ul><ul><ul><li>( http://sourceforge.net/projects/pys60-compat/ ) </li></ul></ul><ul><li>Aparelho Symbian S60 com um cartão de memória (pode ajudar no teste de scripts!) </li></ul><ul><li>Conectividade Bluetooth ativa </li></ul>
  28. 28. Ferramentas de desenvolvimento - Linux <ul><li>Crie seu script .py em qualquer editor de texto de sua preferência </li></ul><ul><li>Envie seu script para a pasta E:Python utilizando obexftp ou conectando o telefone como drive usb. </li></ul><ul><li>Inicie o PyS60 Script Shell </li></ul><ul><li>Escolha o script da lista </li></ul><ul><li>Clique “Select” para executá-lo. </li></ul><ul><li>Solução alternativa: </li></ul><ul><ul><li>PyS60-compat - UI e gráficos </li></ul></ul><ul><ul><li>http://sourceforge.net/projects/pys60-compat/ </li></ul></ul>
  29. 29. Criando aplicativos Python instaláveis <ul><li>Caminho mais fácil: Ensymble </li></ul><ul><ul><li>http://www.nbl.fi/~nbl928/ensymble.html </li></ul></ul><ul><ul><li>Para S60 3 rd Edição, PyS60 1.4.0 or versão posterior </li></ul></ul><ul><ul><li>Linux, Mac, Windows </li></ul></ul><ul><li>Outra alternativa: py2sis junto com a distribuição do código-fonte do Py-S60 </li></ul><ul><ul><li>Na versão 1.9.x – Com interface gráfica! </li></ul></ul><ul><li>Ambas ferramentas criam arquivos .sis que podem ser instalados no telefone como um aplicativo nativo. </li></ul><ul><ul><li>Aparecem no menu principal e tem seu próprio ícone </li></ul></ul>C:devpython>ensymble_python2.5-0.26.py py2sis simplecube.py
  30. 30. Ops… Segurança do Symbian afeta o Python! <ul><li>www.symbiansigned.com </li></ul><ul><li>Acessando algumas funcionalidades “capabilities” específicas do telefone dependem de certificado do desenvolvedor assinado pela Symbian </li></ul><ul><ul><li>Captura de teclas(fora da aplicação) </li></ul></ul><ul><ul><li>Leitura do cell ID </li></ul></ul><ul><ul><li>Leitura do GPS (interno) </li></ul></ul><ul><ul><li>Ajuste do relógio do sistema </li></ul></ul><ul><ul><li>Acesso a arquivos protegidos do sistema </li></ul></ul><ul><ul><li>Obtenha seu certificado (ID) no Open Signed Online </li></ul></ul><ul><ul><li>Registre-se no www.symbiansigned.com . É gratuito! </li></ul></ul><ul><ul><li>Registre o IMEI do seu fone com o certificado (devcert) </li></ul></ul><ul><ul><li>Assine sua aplicação com o certificado </li></ul></ul><ul><ul><li>Instale seu aplicativo no telefone </li></ul></ul>
  31. 31. PyS60 API Tour e Exemplos
  32. 32. Layout básico de uma aplicação S60 <ul><li>Application pode ser usada para acessar e modificar o UI ( appuifw.app) </li></ul><ul><li>Elementos UI: </li></ul><ul><ul><li>Title </li></ul></ul><ul><ul><li>Tabs </li></ul></ul><ul><ul><li>Body (Text, ListBox, Canvas) </li></ul></ul><ul><ul><li>LSK and RSK </li></ul></ul><ul><li>Defina funções de tratamento de eventos para o menu Options e a tecla Exit </li></ul><ul><li>Espere por uma entrada do usuário usando uma “trava” -Active Object lock. </li></ul>
  33. 33. <ul><ul><li>Demo: SampleUIApp </li></ul></ul>Layout básico de uma aplicação S60
  34. 34. <ul><li>Controles de UI são implementadas como tipos em Python: </li></ul><ul><ul><li>ListBox </li></ul></ul><ul><ul><li>Text </li></ul></ul><ul><ul><li>Canvas </li></ul></ul><ul><li>Controles são atribuídos no corpo do aplicativo (usando app.body = control ) </li></ul><ul><li>Caixas de diálogo (Dialogs) são implementadas como funções chamadas a partir do módulo appuifw . </li></ul><ul><li>Objetos específicos para tratamento de conteúdo (Content_handlers para acesso à arquivos). </li></ul>Layout básico de uma aplicação S60
  35. 35. Layout básico de uma aplicação S60 <ul><ul><li>Demo 2: MenuApp </li></ul></ul>
  36. 36. UI framework – Componentes
  37. 37. Multimídia – audio, video, camera <ul><li>Aplicativos multimídia podem ser desenvolvidos através dos módulos: </li></ul><ul><ul><li>Audio – permite a reprodução e gravação de áudio e a funcionalidade de texto-voz (Inclusive fazer trotes!) </li></ul></ul><ul><ul><ul><ul><li>s=audio.Sound.open(u”c:rquivo.wav”)‏ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>s.record()‏,s.stop()‏, s.play() </li></ul></ul></ul></ul><ul><ul><li>Camera – Para tirar fotos, gravar vídeos, controlar aspectos da câmera e acessar configurações da câmera </li></ul></ul><ul><ul><ul><ul><li>Image i = camera.take_photo()‏ </li></ul></ul></ul></ul><ul><ul><ul><ul><li>camera.start_finder(função), camera.stop_finder() </li></ul></ul></ul></ul><ul><ul><li>Graphics – Manipulação de imagens </li></ul></ul><ul><ul><ul><ul><li>graphics.Image.open(&quot;e:rea.png&quot;), graphics.Image.save(“e:hoto.jpg”) </li></ul></ul></ul></ul><ul><ul><li>** Sysinfo – Obtenha informações do seu aparelho. </li></ul></ul><ul><ul><ul><li>sysinfo.battery(),.imei(),.signal_dbm() </li></ul></ul></ul>
  38. 38. Messaging e Inbox – sms/mms <ul><li>O módulo Inbox permite você manipular sua caixa de entrada de mensagens </li></ul><ul><li>O módulo Messaging dá ao seu aplicativo o poder de enviar SMS e MMS </li></ul><ul><ul><li>messaging.sms_send(”96094364”, u”Oi”)‏ </li></ul></ul><ul><ul><li>messaging.mms_send(...)‏ </li></ul></ul>
  39. 39. Vamos construir nosso primeiro Aplicativo! 1. Importe todos módulos necessários 2. Ajuste o tamanho da tela(normal, large, full) 3. Crie a lógica da sua aplicação ... 4. Crie o menu da aplicação (se necessário) 5. Sete o evento de saída (exit key handler) 6. Sete o título da aplicação 7. Verifique os Actives Objects (Aos) 8. Sete o corpo da aplicação(text ou canvas ou listbox or none) 9. Crie um main loop (ex. While loop) se necessário <ul><ul><li>Demo: PyFoto </li></ul></ul>
  40. 40. Conectividade: Bluetooth <ul><li>As aplicações Python usam módulo socket padrão para comunicação via Bluetooth, TCP, etc. </li></ul><ul><ul><li>Demo: BluePy </li></ul></ul><ul><ul><li>Ativem seu bluetooth! </li></ul></ul>
  41. 41. Conectividade: HTTP e até XML!! <ul><li>Biblioteca urllib pode ser usada para HTTP e comunicações Web </li></ul><ul><li>Construa seus protocolos em scripts python para se comunicar com aplicações web (REST) </li></ul><ul><ul><li>Demo: PyFlicker </li></ul></ul>
  42. 42. Muito mais! Explore a API!! <ul><li>Localização </li></ul><ul><li>E32dbm (persistência) </li></ul><ul><li>Telephone </li></ul><ul><li>Contatos </li></ul><ul><li>Sensores…. </li></ul><ul><ul><li>Demo: Shake your music </li></ul></ul>
  43. 43. … E que tal um jogo Multi-player ?? <ul><ul><li>Demo: PyBattle </li></ul></ul><ul><ul><li>* Por favor, 2 guerreiros da platéia! </li></ul></ul>
  44. 44. O céu… ops, “Python” é o limite! <ul><li>Vários aplicativos podem ser desenvolvidos com Python! </li></ul><ul><ul><li>É só ter sua idéia, e botar a mão na massa! </li></ul></ul><ul><li>Extensões para PyS60 </li></ul><ul><ul><li>Crie suas extensões para incrementar seus aplicativos! (Open C/ C++)! </li></ul></ul><ul><ul><li>Flyer (FlashLite UI + PyS60) </li></ul></ul><ul><li>Games </li></ul><ul><ul><li>PyGame for PyS60 , OpenGames. </li></ul></ul><ul><li>Telefone </li></ul><ul><ul><li>CallStatus, Keypress, PyS60USB </li></ul></ul><ul><li>Web </li></ul><ul><ul><li>QrCodes, TwitterAPI, OpenSocial, WordMobi </li></ul></ul><ul><li>Outros </li></ul><ul><ul><li>PySchart, TunnerAPI, A.I. , GSM/3G Info, etc. </li></ul></ul>
  45. 45. Conclusão <ul><li>Introdução a Linguagem Python </li></ul><ul><li>www.python.org/doc </li></ul><ul><li>Vários exemplos do livro: </li></ul><ul><li>http://www.mobilepythonbook.com </li></ul><ul><li>Comunidade sempre à disposição ! </li></ul><ul><li>http://wiki.forum.nokia.com/index.php/Category:Python </li></ul><ul><li>http://wiki.opensource.nokia.com/projects/Python_for_S60 </li></ul><ul><li>http://croozeus.googlepages.com/pyS60 </li></ul><ul><li>Contribua com artigos, posts em fóruns, aplicativos, etc. Você pode se tornar um Forum Nokia Champion e ganhar prêmios! ( http://www.forum.nokia.com ) </li></ul>
  46. 46. Obrigado! Dúvidas?! Marcel Pinheiro Caraciolo [email_address]
  47. 47. Introdução à programação Python para smartphones Nokia S60 Marcel Pinheiro Caraciolo
  48. 48. Ensymble Usar o &quot;ensymble&quot; para gerar o arquivo SIS ( The Ensymble developer utilities for Symbian OS ): ensymble py2sis <source> <target> --uid=<uid> --appname= <appname> http://wiki.forum.nokia.com/index.php/How_to_make_py_to_sis_for_3rd_Editon_devices
  49. 49. Trote.py import telephone, audio, time s = audio.Sound.open(“E:ROTE.WAV”) telephone.dial(“190”) # espere atender s.record() time.sleep(10) telephone.hang_up() s.stop() # divirta-se com o resultado s.play()
  50. 50. Connectivity – urllib Source: webclient.py import urllib, appuifw, e32 URL = &quot;http://www.python.org/images/python-logo.gif&quot; dest_file = u&quot;C:atamagesython-logo.gif&quot; urllib.urlretrieve(URL, dest_file) lock = e32.Ao_lock() viewer = appuifw.Content_handler(lock.signal) viewer.open(dest_file) lock.wait()
  51. 51. import camera, e32, socket, appuifw PHOTO = u&quot;C:atamagest_photo_send.jpg&quot; def send_photo(): try: address, services = socket.bt_obex_discover() except: appuifw.note(u&quot;OBEX Push not available&quot;, &quot;error&quot;) return if u'OBEX Object Push' in services: channel = services[u'OBEX Object Push'] socket.bt_obex_send_file(address, channel, PHOTO) appuifw.note(u&quot;photo sent&quot;, &quot;info&quot;) else: appuifw.note(u&quot;OBEX Push not available&quot;, &quot;error&quot;) Connectivity – bluetooth photo sender Source: bluetooth.py

×