Blog

LISTAR TODOS OS POSTS - Assine os feeds dos posts e comentários

Celulares, Bluetooth e GNU/Linux - Parte 2

Publicado/atualizado em 13/09/2007 17:19

Continuando com as experiências detalhadas nesse outro post, me deparei com um problema onde não conseguia enviar arquivos com mais de 32kb para o celular e isso estava me deixando doido. O Konqueror sempre truncava o arquivo quando chegava em 32kb.

Parece que era alguma coisa com relação ao obex push, sendo que toda vez que eu tentava clicar no ícone do push no Konqueror ele dizia "protocolo não suportado".

Fuçando um pouquinho consegui encontrar um método bem cru (eu poderia dizer que é simples mas tem gente que poderia discordar) para enviar e receber arquivos de qualquer tamanho, usando o comando obexftp.

Vamos dar uma olhada no que tem no celular, conectado pelo bluetooth:

[taq@~]obexftp -b -l
Scanning ...
Using   00:2C:33:46:DE:5D       TaQ Motorola Phone
Browsing 00:2C:33:46:DE:5D ...
Channel: 9
Connecting...done
Receiving "(null)"...|<?xml version="1.0" ?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<folder-listing>
<parent-folder/>
<folder name="audio" size="0" type="folder" 
modified="20070912T214018Z" user-perm="RW"/>
<folder name="video" size="0" type="folder" 
modified="20070912T214018Z" user-perm="RW"/>
<folder name="picture" size="0" type="folder" 
modified="20070912T214018Z" user-perm="RW"/>
</folder-listing>
done
Disconnecting...done

Que chique! Retorna em XML! :-) Pelo retorno, podemos ver que há 3 diretórios no celular, que são audio, video e picture. Agora quero a listagem do diretório picture:

[taq@~]obexftp -b -l picture
Scanning ...
Using   00:2C:33:46:DE:5D       TaQ Motorola Phone
Browsing 00:2C:33:46:DE:5D ...
Channel: 9
Connecting...done
Receiving "picture".../<?xml version="1.0" ?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
<folder-listing>
<parent-folder />
<file name="08-09-07_1632.jpg" size="57398" type="image/jpeg" 
modified="20070912T214146Z" user-perm="RW" />
</folder-listing>
done
Disconnecting...done

Legal, quero pegar aquela foto que está lá:

[taq@~]obexftp -b -c picture -g 08-09-07_1632.jpg
Scanning ...
Using   00:2C:33:46:DE:5D       TaQ Motorola Phone
Browsing 00:2C:33:46:DE:5D ...
Channel: 9
Connecting...done
Sending "picture"... done
Receiving "08-09-07_1632.jpg".../done
Disconnecting...done

E agora quero enviar uma foto:

[taq@~]obexftp -b -c picture -p dsc03530.jpg 
Scanning ...
Using   00:2C:33:46:DE:5D       TaQ Motorola Phone
Browsing 00:2C:33:46:DE:5D ...
Channel: 9
Connecting...done
Sending "picture"... done
Sending "dsc03530.jpg".../done
Disconnecting...done

Prontinho! Tudo funcionando perfeitamente. Podem me chamar de tosco, mas eu vou fazer isso pela linha de comando agora. As GUI chegam até a ser mais complicadas. ;-) As opções utilizadas acima são:

  • -b Indica que estamos utilizando bluetooth
  • -l Lista os arquivos (opcionalmente indicando o diretório)
  • -c Indica o diretório
  • -g Get - pega o(s) arquivo(s)
  • -p Put - envia o(s) arquivo(s)

Atualizado: Para os que estão curiosos em como indicar uma senha para "casar" com o celular, reproduzo aqui o arquivo README.SLACKWARE que veio com o Slackware:

PIN (or passkey) management
---------------------------
since bluez 3.0 the old pin_helper script has been replaced by
the dbus interface.  To add a default passkey for every outgoing
request (e.g. the old /etc/bluetooth/pin file) drop it into
/etc/bluetooth/passkeys/default. (e.g. echo -n "1234" >
/etc/bluetooth/passkeys/default )
To add a passkey for a specific outgoing connection replace default
with the device's address. ( /etc/bluetooth/passkeys/aa:bb:cc:dd:ee:ff
will contain passkey for aa:bb:cc:dd:ee:ff ).
After adding a passkey you should restart bluetooth with

/etc/init.d/bluetooth restart

and the new passkeys will be registered.


(This behaviour has been copied from Debian)

Permalink: http://eustaquiorangel.com/posts/461

salvar no del.icio.ussalvar no diggsalvar no rec6 Veja o que estão dizendo sobre isso.

Comente

Linhas em branco viram saltos de linha. Se você quiser mostrar algum código, por favor use o pastebin e informe a URL.

*

*

Responda: Qual a cor do cavalo branco de Dom Pedro I?  
Clique aqui se não souber essa resposta!

* campos obrigatórios

Comentários

1 - Daniel F. Martins disse em 12/09/2007 18:33

E aí TaQ, beleza?

Já que você tá tendo que usar o obexftp no braço, que tal dar uma experimentada no meu projeto ObexFTP front-end?! :D

http://sourceforge.net/projects/obexftpfrontend

Tive um problema semelhante ao seu e acabei me enxendo de ter que digitar esse monte de comandos no terminal, então eu acabei montando esse projeto, que é uma GUI feita em Java6/Swing para o obexftp.

Tá certo que ainda não implementei tudo que queria, mas a aplicação já é *bem* usável. Sei que vc. não é muito chegado em Java, hehe, mas acho que o ObexFTP front-end pode te dar uma mão aí.

Bom, é isso aí... tá feito o jabá hehe..

Um abraço.

PS: muito criativo o campo anti-spam! :D


2 - Bardo disse em 12/09/2007 18:37

Faz um shellscript, ué! Quando eu usava um Nokia lá, fiz um "baixafotos.sh" que era show, baixava tudo que tinha no celular para uma pasta criada dinamicamente na hora. ;-)

Tá, pode fazer um em ruby se preferir... :-P

[]s


3 - Alfredo Ribeiro disse em 12/09/2007 19:55

O Bardo foi mais rápido que eu, mas deixa eu reforçar, faz um script em Ruby, pegando o XML e tratando, Taquinho, vai ficar muito loco !!!!

Abraço, até amanhã

Alfredo Ribeiro


4 - TaQ disse em 13/09/2007 04:27

Uia, o povo tá rápido! :-)

Podem deixar que agora dá para brincar bastante, seja com a GUI ou com algum script em shell/Ruby/whatever. :-)

Daniel, ei, eu não tenho birra assim de Java não. :-) Parabéns pelo projeto!


Anterior Próximo Últimos Índice