关于一台蓝牙设备跨同一台电脑双系统(Windows&Mac)的识别问题

本文详细介绍了如何处理同一蓝牙设备在Windows和Mac系统间需要反复重置连接的问题。通过获取并转换Mac系统的蓝牙设备linkID,然后将其应用于Windows注册表,实现跨系统的无缝切换。步骤包括在Windows上连接设备,获取Mac系统的linkID,进行LittleEnding到BigEnding的转换,并在Windows注册表中替换linkID。
摘要由CSDN通过智能技术生成

一、问题现象

同一台蓝牙设备,连接同一台电脑下的Windows和Mac这两个不同系统,需要反复重置蓝牙设备,重新进行连接的问题。

二、问题实质

问题的实质,就在于即使是同一个台电脑的两个系统,Windows和Mac也会在连接同一台蓝牙设备的时候,各自生成一个link ID,所以本文目的在于:将该蓝牙设备先连接Windows,然后再连接Mac,然后获取Mac对该设备的link ID,经转换后再粘贴到Windows下该蓝牙设备的link ID上。

三、处理步骤

1、将该蓝牙设备连接到Windows系统。

2、重启电脑进入Mac系统,将该蓝牙设备连接到Mac系统。

3、获取蓝牙设备在Mac系统下的link ID

在Mac系统下,对于10.11 MacOS El Captain 输入

sudo defaults read/private/var/root/Library/blued.plist

对于10.12 MacOS Sierra 输入

sudo defaults read /private/var/root/Library/Preferences/blued.plist

对于10.13 MacOS High Sierra 输入

sudo defaults read /private/var/root/Library/Preferences/com.apple.Bluetoothd.plist

可得到如下信息包含如下部分:

{
LinkKeys= {
"3c-4d-be-0d-83-92" = {length = 16, bytes = 0x3694fb73a14592cb73eb569d66400fc4};
"6c-47-60-09-ef-32" = {length = 16, bytes = 0x1cbcfb84bdad7e79d00f9100abe43fe2};
"94-db-56-79-ce-d9" = {length = 16, bytes = 0x82b4e98543cb4e079991616971929475};
"d4-57-63-5c-4a-b7" = {length = 16, bytes = 0xdfbef40e116e170fa79c0828025fd682};
};

上面只是一个例子,包含了Mac系统下连接的四台蓝牙设备的link ID信息,link ID各自为bytes后的32位的16进制信息(注意去掉16进制标识0x)。

4、转换link ID

由于Mac系统是以Little Ending 储存数据,而Windows 是以Big Ending 储存的,所以需要将link ID由Little Ending转换为Big Ending,其规则举例如下:
3694fb73a14592cb73eb569d66400fc4
转换为
c40f40669d56eb73cb9245a173fb9436
也就是32位信息,8位为一组,进行反转,每一组内,2位为一小组,进行反转。

5、将转换后的link ID放回Windows的该蓝牙设备的link ID中

再次打开Windows修改注册表,由于注册表中,这个link ID是被保护的,所以需要下载工具“PSTools”:
PSTools,解压缩该压缩包后,以管理员身份运行“命令提示符”,然后cd 到解压缩之后的 PSTools 文件夹,输入以下口令:

psexec -s -i regedit

然后在这个工具打开的注册表下,找到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\Keys\(蓝牙适配器地址)

如下图:
请添加图片描述
右侧三个文件,即为3个蓝牙设备,后面的数据,就是该设备在Windows下的link ID,这里需要确定好自己连接的蓝牙设备,找到对应文件,右键-〉修改二进制值,如下图:
请添加图片描述
利用转换过的Big Ending 格式的Link ID,逐一将16进制数值替换掉,键入其中,点击确定,则不需要重启,再回到Windows的蓝牙设备连接界面,可直接连接成功!
注意:该处理方案只能是针对各个蓝牙设备逐一进行处理,如有新的蓝牙设备,需要重复执行以上步骤。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值