【问题标题】:Android Bluetooth Connection ProblemsAndroid蓝牙连接问题
【发布时间】:2011-12-23 06:38:49
【问题描述】:

我正在尝试在我的 Andorid 手机(使用 SL4A)上运行一个简单的 python 脚本来连接到 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); 
  }
} 

我可以通过输入$$$ 来使用Putty 访问blueSMiRF 的命令模式。一切似乎都还好。我只是对服务类和设备类的设置有一点担心。这些分别设置为0x00000x1f00 的出厂默认值,我想知道服务类是否可能需要设置为0x1101(SSP 的UUID)。

其他信息: 安卓版本 2.3.3 SL4A r4

【问题讨论】:

  • 您可能想尝试在 Py4A 邮件列表中询问或检查 Py4A 问题。

标签: android python bluetooth arduino sl4a


【解决方案1】:

当 blueSMiRF 与 arduino 板通信时,为它切换 RX-TX。

如果您能够通过 PC 连接到 blueSMiRF,则它具有 RX-TX 设置作为 arduino 板。

PC 到 blueSMiRF 设置:
PC TX --> Arduino RX --> blueSMiRF RX
PC RX

Arduino 到 blueSMiRF 设置:
Arduino RX --> blueSMiRF TX
Arduino TX RX

【讨论】:

    【解决方案2】:

    PyBluez 模块总体上运行良好,我已经将它与 SL4A 一起使用,没有任何问题。使用它并完全跳过 Java 可能会更好。

    PyBluez 不是纯 Python 模块,因此必须对其进行编译,但这已经完成,最新版本可从 Py4A 站点的 downloads 部分获得。这是我个人使用的副本,没有任何问题。

    只需将副本下载到您的 droid,打开 Python4Android 应用,点击 Import Modules,然后选择 PyBluez egg。

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多