我现在似乎已经开始工作了。蓝牙似乎有点挑剔。我正在重新整理自己的步骤,以防别人发现它有用(尽管这几乎是我最初尝试的方法)。这适用于Nexus 4和Arch Linux 3.6.7-1上的Android JB(4.2.2),以及Gnome 3.6(带有gnome-bluetooth)上的bluez 4.101。
(此步骤可能
无济于事),关闭Android的蓝牙功能,并从Linux机器上断开USB /蓝牙适配器的连接(或者,如果您有内置的USB适配器,请使用hcitool devname reset重置它)
在Linux上连接/打开您的蓝牙适配器。确保适配器可见(可以在gnome-bluetooth中设置-您应该看到蓝牙系统任务栏图标)。
在您的Android设备上打开蓝牙。使用Android配对到适配器(我无法从Linux配对)。将出现一个对话框,要求您输入密钥。输入您想要的任何PIN码。Gnome应该弹出一个通知,要求您输入密钥。输入您之前输入的PIN码。此时,您的Android设备和密钥应配对。
在Linux中,打开一个终端并通过键入以下命令检查可用的蓝牙服务
sdptool browse local
如果您已经有了串行端口服务,请记下它是哪个通道。如果不这样做,则可以添加服务:
sdptool add --channel=22 SP
现在使用rfcomm收听此频道:
sudo rfcomm listen /dev/rfcomm0 22
rfcomm将阻止,侦听带有以下消息的连接
Waiting for connection on channel 22
回到Android,我使用了BlueTerm应用程序(http://pymasde.es/blueterm/,也可以在Google Play商店免费获得),尽管任何类似的应用程序都可以使用。打开BlueTerm,转到选项>连接设备:选择配对的适配器。
希望该应用程序能够连接。您将在终端阻止您收听的终端中看到其他验证,并显示以下消息:
Waiting for connection on channel 22
Connection from 22:22:22:22:22:22 to /dev/rfcomm0
Press CTRL-C for hangup
您在BlueTerm应用程序中键入的任何内容都应转到/ dev / rfcomm0。通过打开新的终端并执行类似的操作,您可以看到输入时显示的内容:
cat /dev/rfcomm0