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:
- -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)
Comentários
Comentários fechados.
Artigos anteriores
- Pull requests em modo raiz - sex, 22 de dezembro de 2023, 09:57:09 -0300
- Qual a idade do seu repositório? - ter, 27 de dezembro de 2022, 12:50:35 -0300
- Utilizando ctags em projetos Rails mais recentes - qui, 24 de junho de 2021, 08:23:43 -0300
- Fazendo o seu projeto brotar - seg, 15 de julho de 2019, 08:57:05 -0300
- Learn Functional Programming with Elixir - sex, 02 de março de 2018, 18:47:13 -0300
- Ambiente mínimo - Driver Driven Development - qua, 23 de agosto de 2017, 15:15:03 -0300
- Ambiente mínimo - repositórios de código - dom, 16 de abril de 2017, 13:02:14 -0300
- Ambiente mínimo - terminal e navegador - dom, 02 de abril de 2017, 21:43:29 -0300
- Utilizando muitas gems no seu projeto? - sáb, 29 de outubro de 2016, 11:57:55 -0200
- Desenvolvedores e inteligência artificial - seg, 11 de julho de 2016, 09:09:38 -0300
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!
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
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
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