Programação e Linux.

Mostrando postagens com marcador nokia. Mostrar todas as postagens
Mostrando postagens com marcador nokia. Mostrar todas as postagens

sexta-feira, 5 de dezembro de 2008

Android 1.0 agora roda em Nokia N810

Depois do Neo Runner (OpenMoko), agora é a vez de outro dispositivo que já roda linux, o Nokia N810 também rodar o Android.

Segundo o Linux Devices, o porte apenas está no início, para que os aplicativos rodarem de fato no N810, os desenvolvedores querem agora prover suporte ao Android Debug, consertar um crash constante do sistema e habilitar o recarregamento da bateria quando em corrente elétrica. O porte ainda não permite acesso a internet devido ao driver fechado do chip WiFi do N810, mas eles planejam ou habilitar o chip WiFi ou permitir acesso por USB.

Em julho uma versão pré-release do Android já havia rodado no N810.

Clique aqui para acessar o artigo sobre o porte (em inglês).



Esta notícia veio em boa hora, estou pensando em comprar um dispositivo ultra móvel para poder hackear um pouco, alguns podem não saber, mas eu sou (também) desenvolvedor para sistemas embarcados, só que desde abril de 2008 não mexi mais com isto. Estava pensando em comprar um N810, mas o maemo já funciona 100% nele, não teria muito espaço para mim, mas que tal colocar o android em pleno funcionamento nele?


N810 é um produto da Nokia, uma das maiores fabricantes de celulares do mundo, entretanto não é um celular, é um tablet pc ultra portátil.

Android é uma plataforma de desenvolvimento aberto para celulares que roda em cima de linux e é patrocinada pelo google.

No início da semana, o Linux Devices anunciou que um grupo de hackers portou o Linux para iPhone e que o próximo passo é o Android (Corrigindo erro, obrigado Leonardo Saraiva).

Esta semana também foi anunciado durante o IP Communications Brasil 2008 que o Android foi portado para o Freerunner (OpenMoko)

quinta-feira, 21 de agosto de 2008

Slides palestra de 'Python no Celular' CeSOL

Ontem dia (20/08/2008) fiz minha palestra no CESOL, sobre python e Series 60, Mostrei como usar os recursos disponíveis no celulares Series 60 da Nokia usando Python como linguagem
No primeiro momento eu falei sobre python, nokia, symbian, a implemetação do python para o Series 60.

Após isto iniciei a parte dinâmica (slides 22 e 23) da palestra onde eu abria um console remoto (meu computador conectado no console python do celular) e fazia pequenos scripts para usar as funcionalidades do celular usando apenas python. O meu roteiro desta parte segue abaixo:
############################
# Abrir tres terminais
# Ligar o rfcomm
sdptool add --channel=2 SP
sudo rfcomm listen rfcomm2 2

####
# ir no celular e ativar o console bluetooth
#####
# Abrir o minicom em outro terminal

minicom
#######################
# no terceiro terminal
# procurar dispositivos

sudo hcitool scan

######################################
# DENTRO DO MINICOM
######################################
# PYTHON
# Coisas basicas
import os

# nome do os
os.name

# diretorio atual
os.getcwd()

os.listdir(u"e:\\")

# mostrar a hora atual
import time
time.ctime()


################################3
# SMS

# enviar um sms
import messaging
messaging.sms_send('08584166618', u'Somente um teste')

# receber um sms
import inbox
i = inbox.Inbox()

# receber sms
def my(msgid):
print msgid

i.bind(my)

########
# Aqui vai aparecer uma mensagem com o numero (copiar para abaixo)

# entao mostrar a mensagem
i.content(1049305)
i.address(1049305)
i.time(1049305)

# formatar para o tempo correto
from e32db import format_time
format_time(i.time(1049305))

#########
# Ligar para alguem

import telephone

telephone.dial('88752334')

telephone.hang_up()


#########################
# Agenda

import contacts

# mostrar contatos:
db = contacts.open()
for i in db:
print db[i].title

# adicionar um contato
c = db.add_contact()
c.add_field(u"first_name", value=u"CESOL")
c.add_field(u"last_name", value=u"UFC")
c.add_field(type=u"mobile_number", value=u"2008")
c.commit()

# Mostrar os contatos
for i in db:
print db[i].title

# Mostrar meu contato
c
c.id
db[c.id]

for e in c:
print e.type, e.value

# exportar um vcard
vcards = db.export_vcards([c.id])

# gravar o arquivo

filename = u"e:\\test.vcf"
f = open(filename, "w")
f.write(vcards)
f.close()


# PEDIR PARA LIGAR O BLUETOOTH
# enviar para alguem da plateia
# sudo hcitool scan

from e32socket import *
cel1 = "00:17:E3:F9:D6:D3"
#cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)


# apagar o contato
del db[c.id]
# Mostrar os contatos
for i in db:
print db[i].title

# reimportar o contato
db.import_vcards(vcards)

###########################
# Parte grafica (fazer um aplicativo)

# mexer no celular

# fazer um hello world

from appuifw import *

# desenhar o hello world
t = Text()
t.set(u"Hello python")
app.body = t

# como ninguem ta vendo, vamos tirar um screenshot da tela e enviar para alguem

import graphics

pc = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(pc)
image = graphics.screenshot()
filename =(u'e:\\pic001.jpg')
image.save(filename)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)

# enviar para eu mesmo
# ligar o bluetooth obex server

# fazer funcao para realizar screenshot e enviar para alguem
def ss(to='00:09:DD:50:0C:C5'):
phone = bt_obex_discover(to)
image = graphics.screenshot()
file =(u'e:\\pic001.jpg')
image.save(file)
bt_obex_send_file(phone[0], phone[1].values()[0], file)

#ss()

###
# Desenhar um retangulo

# mexer no celular

from random import randrange
app.body = canvas = Canvas()
color = randrange(0xffffff)
canvas.rectangle((0, 0, 100, 100), fill=color)

# enviar para eu mesmo
ss()

# desenhar uma seta de mouse
x,y = 20,20
arrow = [(0,0), (0,10), (2,8), (4,12), (6,11), (4,7), (7,7)]
canvas.polygon([(x+dx,y+dy) for dx,dy in arrow], 0, 0xffffff)

# enviar para mim mesmo
ss()

###################
# Camera
import camera
image = camera.take_photo()

# enviar para alguem
filename =(u'e:\\pic001.jpg')
image.save(filename)

cel1 = '00:17:E3:F9:D6:D3'
# cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)

# fazer um sistema de monitoramento?
# usar gprs/internet

#################
# Arquivo de audio?

import audio

filename = u"e:\\audio.wav"
s = audio.Sound.open(filename)

# gravar
s.record()

# parar
s.stop()

# tocar
s.play()

# fechar
s.close()

enviar para alguem
cel1 = '00:17:E3:F9:D6:D3'
# cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)

# apagar o arquivo
os.unlink(filename)

# Fazer um Servico jornalistico?