解決Windows 與Mac 雙系統下的藍牙設備共用的問題


不知道有多少人和我一樣用的藍牙鼠標或者鍵盤,有的話應該都會遇到同一個問題:即在一個系統下配好對后在另一個系統必須重新配對才能使用,很是麻煩.還要將藍牙設備進入發現模式,OS下搜索,連接....終於昨天在一個老外網上看到了解決方法,寫出來分享一下.
原貼地址:http://www.insanelymac.com/forum/index.php?showtopic=268837
原作者已經寫的很詳細了,我這里就只做翻譯~

原理:這個問題的實質原因是,由於藍牙是一對一傳輸,當OS連接藍牙設備的時候,會隨機生成一個link ID(可以理解為連接識別碼),Win 和Mac 用的是不同的link ID。而每次配對都會改變其link ID,所以才導致不同OS的藍牙不能公用,即使是一個電腦的藍牙芯片也不可以。P.S: 不過Ubuntu 就沒有這個問題,不管win/mac 的藍牙都能用,贊一個!

問題本質清楚了,解決方法就很簡單了。首先需要在兩個系統下都要對藍牙設備配對,用來生成同一設備的不同link ID,然后把兩個系統的ID改成一樣的就好了~ 原貼是先在Windows 下配對,然后去Mac 配對。這里的順序一定不能變,因為我們最后要在Windows 下改link ID。(當然你如果知道怎么在Mac 改可以無視這句)

連藍牙我就不多說了,Windows 下配完對,重啟進Mac 系統,再配對。所以現在你可以在Mac 下用你的藍牙設備。

Mac 下查看link ID:
打開終端,輸入以下口令

  1. sudo defaults read /private/var/root/Library/Preferences/blued.plist
復制代碼

然后屏幕上會出現幾行代碼,我們要找的link ID 是32位的16進制數字(比如:98542ff9 88e19449 475250e1 3943255b)

Little Ending to Big Ending:
這一步極其重要。因為Mac是以Little Ending 儲存數據,而Windows 是以Big Ending 儲存的。所以我們要進行數據格式的轉換。其實規則很簡單,原則就是從右往左讀,一次兩個16進制數。比如Mac 下顯示ID 為 

  1. 98542ff9 88e19449 475250e1 3943255b
復制代碼


則轉換成 Big Ending 就是 

  1. 5b 25 43 39 e1 50 52 47 49 94 e1 88 f9 2f 54 98
復制代碼

這里空格可以忽略,只是為了大家看着方便。現在Link ID 已經到手,重啟進Windows~

Windows 下修改Link ID:
我們最開始已經連過藍牙設備到Windows 了,所以現在設備那里會顯示你的鼠標或鍵盤。但是因為我們之后又連過Mac,所以現在應該是不能用的(不然我也沒必要寫這篇文章)。下一步我們要修改Link ID,而它就在注冊表里。但是這個Link ID是被保護的,如果直接打開注冊表是不能編輯的,甚至看都看不到。所以這里需要另外一個工具 PSTools
<ignore_js_op> PSTools.zip (1.53 MB, 下載次數: 1248) 

隨便下到哪里都行,解壓縮。然后以管理員身份運行命令行,cd 到解壓縮之后的 PSTools 文件夾,輸入以下口令:

  1. psexec -s -i regedit
復制代碼

然后在打開的注冊表里找到

  1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys\(藍牙適配器地址,不是你藍牙鼠標/鍵盤的地址)
復制代碼

<ignore_js_op>Capture.PNG 
在右邊的注冊表項點右鍵-〉修改二進制值
<ignore_js_op>Capture.PNG 
把原來的數值全部刪除先,然后輸入你轉換過得Big Ending 格式的Link ID,點OK。你的設備就可以用了!(不需要重啟)

次方法非一勞永逸,每次添加新的藍牙設備都必須重新按此文章修改一次~ 如果有更好方法歡迎分享~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM