Blog do TaQ

Celulares, Bluetooth e GNU/Linux - Parte 2

Publicado em GNU/Linux

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:

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)

Tags:


Comentários

comments powered by Disqus

Twitter