一,藍牙設備
藍牙適配器: 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,不在乎多少(我也是跟網上的大神們學的),不想掙錢娶媳婦的程序員不是好程序員,謝謝
