持久 HIDD 蓝牙连接

持久 HIDD 蓝牙连接

能够使用以下方法成功连接我的蓝牙键盘和鼠标:

hcitool scan
sudo hidd --connect AA:BB:CC:DD:EE:FF

但如果我重新启动或打开/关闭设备,我必须通过命令行重新连接。有什么方法可以自动完成此操作吗?

注意:我曾尝试通过 bluez-simple-agent 连接,但从未成功。HIDD 连接是我能够使用的唯一方法。我运行的是 Ubuntu 14.04

答案1

我建议要么做一个初始化启动脚本或者通过内置的“启动应用程序”程序添加它。由于您使用的是 sudo 命令,我相信您需要编辑 sudoers允许该命令而不要求输入密码。 链接有一些额外的信息。

我们可以编写一个程序来轻松地完成此操作,以便它可以作为应用程序运行吗?

    //resetbt.c
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
      int x;
      int attempts = 0;
      while(attempts < 20)
      {
        x = system("hcitool scan");
        usleep("500000"); //added a little wait state
        printf("%d", x);    
        if(x != -1 && x == THE_CORRECT_VALUE_OF_X_FOR_SUCCESS_OF_FIRST_COMMAND) //the printf echos a number, check for when its working and when its not. Change the value to be the one it returns when its working
        {
          system("sudo hidd --connect AA:BB:CC:DD:EE:FF");
          exit(EXIT_SUCCESS);
        }
        attempts++;
      }
    }

使用 gcc 编译:

    gcc resetbt.c -o reset.bin

答案2

我通过再次尝试 bluez 解决了这个问题。原来它最初不起作用的原因是我以错误的顺序运行命令。在 Ubuntu 14.04 上,我在终端中运行:

hcitool dev //Get HCI number
//Press Connect on Device
hcitool scan //Get MAC Address
bluez-simple-agent hci0 MAC_ADDRESS
bluez-test-input connect MAC_ADDRESS
bluez-test-device trusted MAC_ADDRESS yes

我想我在连接之前就已经在运行受信任的程序了,而且无论出于什么原因,我必须先连接我的机器,然后才能信任它。

答案3

旧帖,但我搜索了整个网络以寻找可接受的解决方案。这里就是……快速又简单

创建设备配置文件(/etc/bluetooth/hcid.conf 或 /etc/bluetooth/input.conf)

# nano /etc/bluetooth/hcid.conf
device XX:XX:XX:XX:XX:XX {
  name "Wireless Keyboard";
  auth enable;
  encrypt enable;
}

运行并将此行添加到您的 /etc/rc.local

# hidd --server

现在 hidd 接受来自从属设备的连接。

相关内容