Это вызвано тем, как устройства Bluetooth аутентифицируются друг с другом.
Когда происходит первоначальная (ручная) аутентификация, оба устройства сохраняют «ключ связи», который они используют для автоматической аутентификации для будущих соединений.
Примечание. Прокрутите вниз до пункта «Простой способ » в нижней части этого ответа, если вас не волнует, что происходит и как это сделать вручную.
Что происходит
- Вы пару наушников на компьютере А.
- Это требует ручной аутентификации.
- Новый ключ ссылки генерируется.
- Оба устройства хранят этот ключ ссылки.
- Вы переворачиваете свой USB-переключатель так, что ваш Bluetooth-ключ теперь подключен к компьютеру B.
- Вы подключаете наушники к компьютеру B.
- Это требует ручной аутентификации.
- Новый ключ ссылки генерируется.
- Поскольку компьютер B использует тот же адаптер Bluetooth, что и компьютер A, они оба имеют один и тот же адрес, поэтому наушники предполагают, что это один и тот же компьютер, и что он потерял свой оригинальный ключ связи (например, если вы сказали "Забудьте" наушники) ) и когда он сохраняет этот ключ ссылки, он заменяет ключ связи компьютера А.
- Вы снова включаете USB-переключатель, чтобы ключ Bluetooth снова подключался к компьютеру A.
- Компьютер A и наушники пытаются установить связь, но не могут, потому что у них разные ссылочные ключи, и, следовательно, они не могут подтвердить подлинность того, что это то же самое устройство, к которому им изначально было предоставлено разрешение.
Вы хотите, чтобы наушники думали, что это один и тот же компьютер, поэтому вам нужно, чтобы оба компьютера хранили один и тот же ключ связи.
Решение
Предполагая, что вы используете встроенный в Windows стек Bluetooth, ключ ссылки хранится по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys
под ключом, названным в честь адреса Bluetooth.
Примечание. Этот раздел реестра недоступен, если вы не измените его разрешения или не запустите редактор реестра как учетную запись SYSTEM.
Я рекомендую последний вариант:
- Загрузите PsExec от SysInternals.
- Запустите командную строку.
- Выполните
X:\Path\to\psexec.exe -s -i regedit.exe
.
Если вы использовали Windows на обоих компьютерах, вы можете просто подключиться к обоим компьютерам, а затем скопировать ключ ссылки с последнего на первый. Поскольку один из ваших компьютеров - Mac, вам нужно будет проделать немного больше работы, потому что они хранят ключи ссылок по-разному.
- Сначала вам нужно подключить компьютер с Windows.
- Переместите Bluetooth-ключ на Mac.
- Получить последнюю ссылку ключ от Mac:
- Это должно быть сохранено в
/private/var/root/Library/Preferences/blued.plist
- Выполните
sudo defaults read /private/var/root/Library/Preferences/com.apple.bluetoothd.plist
чтобы найти все сохраненные ключи ссылок.
- Найти ключ ссылки для ваших наушников.
- Преобразуйте этот ключ ссылки из формата Mac в формат Windows:
- Фактически вы разбиваете его на 2 фрагмента символов, а затем переворачиваете эти фрагменты.
- Столь же нереально, как этот ключ ссылки, если Mac сохранил его как
1234567890ABCDEFGH
, ПК Windows должен был бы быть GHEFCDAB9078563412
- Скопируйте этот недавно преобразованный ключ ссылки в реестр ПК с Windows поверх старого.
Легкий способ
Я также натолкнулся на «BT-LinkkeySync», проект с открытым исходным кодом (по лицензии MIT) Тобиаса Финке, который может получить все ключи от Mac и вывести их в виде файла .reg
для простого импорта в Windows.
Вот ссылка на него на GitHub: https://github.com/digitalbirdo/BT-LinkkeySync