我试图让一个简单的python脚本在我的android手机上运行(使用sl4a)来连接到bluesmirf蓝牙调制解调器(基于rn41设备),但是无论我尝试什么,当我尝试连接时都会出现以下错误。
java.io.ioexception:无法启动服务发现
python脚本如下所示
import android
droid = android.Android()
droid.toggleBluetoothState(True)
result = droid.bluetoothConnect()
#result = droid.bluetoothConnect('00001101-0000-1000-8000-00805f9B34fb')
#result = droid.bluetoothConnect('00001101-0000-1000-8000-00805f9B34fb', '00:06:66:07:AE:44')
print repr(result)
droid.toggleBluetoothState(False)
我已经尝试了
bluetoothConnect()
的所有三种变体,如上面的代码所示。如果我尝试前两种连接方法,我也可以在要连接的设备列表中看到blueSMiRF
。我的Arduino草图(运行在Arduino Mega上)如下所示。它只是将字符从一个端口转发到另一个端口。
Serial
在9600连接到我的笔记本,Serial1
在115200连接到BlueSMiRF
。void setup ()
{
// initialise serial
Serial.begin(9600);
Serial1.begin(115200);
}
void loop ()
{
if (Serial1.available())
{
char c = Serial1.read();
Serial.print(c);
}
if (Serial.available())
{
char c = Serial.read();
Serial1.print(c);
}
}
通过键入
blueSMiRF
,我可以使用putty访问$$$
的命令模式。一切看起来都很好。我只关心服务类和设备类的设置。它们分别设置为出厂默认值0x0000
和0x1f00
,我想知道是否需要将服务类设置为0x1101
(ssp的uuid)。其他信息:
Android版本2.3.3
SL4A R4
最佳答案
与Arduino板通话时,切换Bluesmirf的RX-TX。
如果您能够通过PC连接到Bluesmirf,它将RX-TX设置为Arduino板。
PC到Bluesmirf设置:
PC发送-->Arduino接收-->Bluesmirf接收
PC RxArduino到Bluesmirf设置:
Arduino RX-->蓝调Mirf TX
德克萨斯州阿迪诺