不知道有多少人和我一样用的蓝牙鼠标或者键盘,有的话应该都会遇到同一个问题:即在一个系统下配好对后在另一个系统必须重新配对才能使用,很是麻烦.还要将蓝牙设备进入发现模式,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> 
在右边的注册表项点右键-〉修改二进制值
<ignore_js_op> 
把原来的数值全部删除先,然后输入你转换过得Big Ending 格式的Link ID,点OK。你的设备就可以用了!(不需要重启)

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

解决Windows 与Mac 双系统下的蓝牙设备共用的问题的更多相关文章

  1. Windows和Linux双系统下完美卸载linux

    装了Windows和linux双系统的朋友,在后期要删除linux是个比较头痛的问题,因为MBR已经被linux接管,本文的目的是如何在windows 和linux双系统下,简单,完美地卸载linux ...

  2. mac双系统下ubuntu卡在开机密码登录界面卡死

    背景:开机黑屏卡在,dev/sda1: clean, 552599/6111232 files, 7119295/24414464 blocks,修复完这个问题之后,出现桌面卡死,光标鼠标键盘全部失灵 ...

  3. windows和linux双系统删除linux

    装了Windows和linux双系统的朋友,在后期要删除linux是个比较头痛的问题,因为MBR已经被linux接管,本文的目的是如何在windows 和linux双系统下,简单,完美地卸载linux ...

  4. 双系统下(Ubuntu + win7)windows 无法连接无线网络

    双系统下(Ubuntu + win7)windows 无法连接无线网络 今天开机登录win7,突然发现无法使用无线网络(WiFi信号标志有个大红叉),于是查看设备驱动,一切正常,这就奇怪了:用Wind ...

  5. win7/ubuntu双系统下,如何恢复成win7引导及卸载ubuntu

    电脑原来是win7系统,后来通过硬盘安装了Ubuntu,同时把Ubuntu设置成了开机引导项(开机时选择操作系统的界面成了紫色背景白色字体的界面),ubuntu引导开机的缺点是将来要卸载Ubuntu时 ...

  6. 硬件时间,操作系统时间,Windows 和linux 双系统时间差8小时问题说明

    1.硬件时间:硬件时钟是存储在主板上CMOS里的时间即BIOS时间,关机后该时钟依然运行,主板的电池为它供电.对应于嵌入式设备有一个RTC模块.硬件时钟即RTC时钟.信息比较少没时区.夏令时的概念. ...

  7. Windows、Ubuntu双系统重装windows系统后grub引导的修复及默认启动项的修改

    今天帮童鞋重装系统,他的电脑是Windows.Ubuntu双系统,需要重装的系统是windows,据说是因为很多游戏都只支持64位,要给换成64位的 = =...      于是我就帮他装了个wind ...

  8. 安装Windows 和 Linux双系统(vmware) Centos7

    这里我安装的是Windows + Centos 7,如果是要安装Centos 6,步骤一样 一.安装Windows和Linux双系统需要先安装Windows然后安装Linux 解释:这里解释下为什么要 ...

  9. Mr.Jin系统发布报告——WIN7 WIN8双系统下的学习模式系统

    Mr.Jin系统发布报告           本文由Mr.Jin原创发表于博客园.CSDN论坛 http://www.cnblogs.com/CHPowerljp-IT/p/3463850.html ...

随机推荐

  1. [Xcode 实际操作]五、使用表格-(9)删除UITableView单元格(手势左滑调出删除按钮)

    目录:[Swift]Xcode实际操作 本文将演示如何删除某一行单元格.手势左滑调出删除按钮. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIK ...

  2. Python书写规范

    一.python脚本的规范: 每个脚本都有自己的规范,以下的规范不是强制的,但是规范一下,可以使你的脚本规范.易懂.方便使用. #!/usr/bin/env python # -*- coding: ...

  3. java之代理 静态代理和动态代理

    一.静态代理     1. 代理有很多种,有虚拟代理,保护代理,智能引用代理,和远程代理; 开发中最常用的是只能引用代理       2. 代理的模式有两种,分别是: 静态代理 代理对象,被代理对象在 ...

  4. 封装了一个电商放大镜移入放大的功能,适用于VUE

    代码地址:https://github.com/zhongqiulan/jqimgzoom 由于vue只支持ie9以上版本,所以这个插件也是一样的 效果图: 第一步,在goodsinfo文件中引入cs ...

  5. 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter

    中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter 中间件的注册除了可以借助Startup对象(DelegateStartup或者ConventionBasedStar ...

  6. 042 Trapping Rain Water 接雨水

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算下雨之后能接多少雨水.例如,输入 [0,1,0,2,1,0,1,3,2,1,2,1],返回 6. 详见:https://leetcode.c ...

  7. LinkedList源码及原理

    简介 内部结构分析 LinkedList源码分析 构造方法 添加(add)方法 根据位置取数据的方法 根据对象得到索引的方法 检查链表是否包含某对象的方法: 删除(remove/pop)方法 Link ...

  8. (转)nginx域名访问的白名单配置梳理

    nginx域名访问的白名单配置梳理 原文:http://www.cnblogs.com/kevingrace/p/6086652.html 在日常运维工作中,会碰到这样的需求:设置网站访问只对某些ip ...

  9. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">报错

    https://blog.csdn.net/qq_36611526/article/details/79067159 今天遇到个问题 文件内引入某个资源 pom.xml头部http://maven.a ...

  10. MYSQL查询~ 存在一个表而不在另一个表中的数据

    A.B两表,找出ID字段中,存在A表,但是不存在B表的数据.A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引. 方法一 使用 not in ,容易理解,效率低  ~执 ...