我正在尝试在我的安道尔手机上运行一个简单的python脚本(使用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 (UUID )。
其他信息:AndroidVersion2.3.3 SL4A r4
发布于 2013-02-18 18:23:31
PyBluez模块一般运行良好,我在SL4A中使用它没有任何问题。您可能会更幸运地使用它并跳过Java。
PyBluez不是一个纯Python模块,所以必须编译它,但是这已经完成了,最近的版本可以从Py4A站点的下载部分获得。这是我个人使用的拷贝,没有任何问题。
只需下载一个副本到您的机器人,打开Python4Android应用程序,点击导入模块,并选择PyBluez蛋。
https://stackoverflow.com/questions/8030965
复制相似问题