my blog my blog

Tag: bluez
Linux系统蓝牙配置与Android设备文件通信

呃,最近发现了一个很囧的事儿,就是奶牛的Arch Linux下蓝牙只能通过浏览自己Android手机的文件来进行上传下载,却不能接受Android手机蓝牙传送来的文件,很纠结的说,总是提示obex push profile无法找到,但是系统已经安装了Obex了啊.于是乎继续纠结,搜索过程中找到了很多有用的东西,与朋友们一起分享下.

sudo pacman -S bluez安装蓝牙工具包
sudo hciconfig -a 察看蓝牙设备信息
sudo hciconfig hci0 up 启动蓝牙设备0
sudo hciconfif hci0 name 察看当前蓝牙设备0的名称信息
sudo hciconfif hci0 name nenew 设置当前蓝牙设备0的名称为nenew
sudo hcitool scan 查找附近的蓝牙设备
sudo sdptool search OPUSH 察看附近设备是否有OBEX Object Push服务存在

sudo obex_test -b 设备地址 频道
Using Bluetooth RFCOMM transport
OBEX Interactive test client/server.
> c
Connect OK!
Version: 0x10. Flags: 0x00
> p name.fiel
PUT file (local, remote)> name.file name.file
name=name.file, size=18
Going to send 18 bytes
PUT successful!上传成功
> s
进入obex接收模式,手机可以上传文件
> q
退出
这样在Archlinux下配置bluetooth就初步成功.
但是如果回显不正确也未必就是不成功,奶牛的机子就回显不成功,但是实际上传是正常的.
obexfs -b 设备地址 ./mountpoint 可以将设备挂载到本地的目录进行文件管理
嗯,通过上述命令,就基本可以实现对远程蓝牙设备的管理了,如果是想图形话界面的管理的话可以如下操作.
sudo yaourt -S blueman
sudo rc.d start bluetooth 开启蓝牙服务
sudo blueman-manager 开启蓝牙管理程序

在右下角的图标单击右键进行服务设置,将obex的选项设置为可以发送可以接收,否则接收不到文件哦~这个是gnome3那个默认的管理程序没法设置的,不多解释.

然后 kill掉上个blueman-manager程序,为啥?因为那样子传过来的程序都是root权限的呃.重新启动一次,以普通用户的权限即可.