Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 1417|回复: 0

解决Windows 与Mac 双系统下的蓝牙设备共用的问题

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-5-25 11:40:30 | 显示全部楼层 |阅读模式

    不知道有多少人和我一样用的蓝牙鼠标或者键盘,有的话应该都会遇到同一个问题:即在一个系统下配好对后在另一个系统必须重新配对才能使用,很是麻烦.还要将蓝牙设备进入发现模式,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。你的设备就可以用了!(不需要重启)

    次方法非一劳永逸,每次添加新的蓝牙设备都必须重新按此文章修改一次~ 如果有更好方法欢迎分享~~

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-12 01:35 , Processed in 0.064925 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表