一,蓝牙设备
蓝牙适配器: ISSC芯片, USB接口(市面上还有其他的一些品牌,大多没有问题)
1,加载蓝牙适配器
插入USB口之后,可以使用lsusb命令(虚拟机也是可以的),看到:
这是,运行hciconfig可以看到(这里我插了两个蓝牙,但是一个是蓝牙适配器,一个是串口+蓝牙模块):
2,配置bluez
默认的配置文件放在/etc/bluetooth目录
hcid.conf和pin不需要修改,安全方式已经被设置成auto,这是为了方便连接,用户可以自己修改,推荐不做修改,以防止有些设备连接不上。
3,重启bluetooth服务。
/etc/init.d/bluetooth stop
/etc/init.d/bluetooth start
4,运行:
hciconfig hci0 up
可以激活串口(如果这一步不做,hcitool scan无法运行)
5,修改配置文件:
修改/etc/bluetooth/rfcomm.conf
将里面的:
device 11:22:33:44:55:66;
修改成hcitool scan的结果,也就是:
device 98:D3:31:F5:09:2F
保存退出。
6,添加通道:
sdptool add --channel=1 DID SP DUN LAN FAX OPUSH FTP HS HF SAP NAP GN PANU HID CIP CTP A2SRC A2SNK SYNCML NOKID PCSUITE SR1
后面的参数不一定被支持,但是以防有些服务没有被打开,所以,干脆全部打开了。
rfcomm bind /dev/rfcomm0 电话的地址 通道(在rfcomm.conf中配置)
这里的命令应该写成:
rfcomm bind /dev/rfcomm0 98:D3:31:F5:09:2F 1
sudo rfcomm bind /dev/rfcomm5 98:D3:31:F5:09:2F 1
(特别注意 1 代表的是通道,)rfcomm的数字是可以变化的 与后面连接的数字不相干比如sudo rfcomm connect 8 98:D3:31:F5:09:2F
7,连接设备:
hcitool cc 设备的地址
也就是
sudo rfcomm connect 1 98:D3:31:F5:09:2F(打通连接的最重要的 一个命令)
1代表的1(非常重要的一点)如果用1通道连续连接同一个蓝牙将会出现错误
每断开一次就要变数字
不然会提示Can't create RFCOMM TTY: Address already in use
98:D3:31:F5:09:2F 是我将要连接蓝牙的设备地址
。特别提醒用这句话sudo hcitool cc 98:D3:31:F5:09:2F
是不能连接上的,但是大部分都是这种说法,我就载在这里一天的时间
同时在电脑的蓝牙图标首先打开蓝牙适配器,搜索到所要连接的蓝牙,并输入连接密码
这种状态说明蓝牙虽然密钥已经配对成功,但是蓝牙的透传模式任然没有打开
这时我们需要设置
2,设置etc/Bluetooth/ 文件下的配置文件
对于audio.conf , input.conf ,network.conf ,proximity.conf ,不予理会
Main.conf 暂且不用配置但是其参数为
Name = %h-%d
Class = 0x000100
DiscoverableTimeout = 0
PairableTimeout = 0
PageTimeout = 8192
AutoConnectTimeout = 60
InitiallyPowered = true
RememberPowered = true
ReverseServiceDiscovery = true
NameResolving = ture
DebugKeys = false
EnableGatt = false
主要是rfcomm.conf文件的配置
# RFCOMM configuration file.
rfcomm0 {
# # Automatically bind the device at startup
bind no;
# # Bluetooth address of the device
device 98:D3:31:F5:09:2F;
# device 98:6C:F5:E3:25:73;
#
# # RFCOMM channel for the connection
channel 1;
# # Description of the connection
comment "Example Bluetooth device";
}
出现的错误解决
Can't init device hci0: Operation not possible due to RF-kill (132)
解决办法:
https://bbs.archlinux.org/viewtopic.php?id=112299
运行:rfkill list
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
因为软件锁定了所以
运行sudo rfkill unblock Bluetooth 之后运行rfkill list
rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
-------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
如果您觉得看完有所收获,可以资助一分,几分money,不在乎多少(我也是跟网上的大神们学的),不想挣钱娶媳妇的程序员不是好程序员,谢谢