2

我试图将我的 Nexus One 与 Android 版本 2.2.1 与我的电脑连接,并使用终端程序(如 windows 终端或超级终端)进行通信。为此,我相信我需要设置一个传出串行 com 端口。我已配对设备。当我在我的电脑上转到蓝牙 - > 设置 - > “添加 com 端口”时,android 设备不显示。

我错过了什么?

android 2.2.1 是否支持 spp?文档说确实如此。

我需要root android来添加spp吗?

有人成功了吗?

我的最终目标是编写一个与需要 com 端口的老式蓝牙设备通信的 android 应用程序?让 android 与 pc 通信是一个临时步骤。

我已经尝试了我在我的 android 应用程序中能想到的一切来连接我的 pc 和 android 设备,但没有成功。我的 android 应用程序与xCaffiniated 提交的 Serial over Bluetooth基本相同,但评论较少。有什么建议么?

4

3 回答 3

2

尝试从BluetoothChat示例应用程序开始。然后,您必须将 UUID 更改为通用 SPP UUID,

00001101-0000-1000-8000-00805F9B34FB

从这一点开始,您几乎拥有所需的一切。

我在 BluetoothChat 程序中遇到了配对问题。所以我需要使用设置菜单与我的电脑配对,然后进入蓝牙聊天程序。在 BTChat 中,转到菜单并点击连接到设备,选择您的计算机。我只能说我正在使用的 windows XP SP3。此时在我的机器上我收到一个任务栏弹出询问我是否允许我的设备作为串行端口连接。我允许它。现在您的手机与计算机上的串行端口配置文件相关联,您可以将其与特定的 com 端口相关联。

于 2011-01-11T22:58:26.220 回答
2

基于蓝牙规格,

http://www.bluetooth.com/SiteCollectionDocuments/SPP_SPEC_V12.pdf ,

2.3 用户需求,“......任何遗留应用程序都可以在任一设备上运行,使用虚拟串行端口,就好像有一根真正的串行电缆连接两个设备(使用 RS232 控制信号)。” 在 4.3 远程端口协商中,“...如果 RFCOMM 适配层的 API 暴露于这些设置(例如波特率、奇偶校验),则需要这样做... RFCOMM 不会人为地限制基于波特率设置,..."

在我看来,由于 Android (2.2) 没有提供设置和打开串行端口的 API,因此只要您可以发现远程 BT 设备并与之建立连接,它们可能不是必需的。我已经尝试过了,它似乎适用于:

...

袜子 = device.createRfcommSocketToServiceRecord(myUUID); 袜子.connect();

...

其中最终的 UUID myUUID= UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 您可能需要注意应用程序中的蓝牙权限和设置,如中所述

http://developer.android.com/guide/topics/wireless/bluetooth.html

connect() 调用可能存在一些问题,即服务不可用或连接被拒绝,这可以通过确保:

  1. 发现远程 BT 设备,并且
  2. 它必须设置为使用 PIN 码(例如 0000),并且
  3. 它必须与您的 Android 设备成功配对

这些步骤必须在运行您的应用程序(具有连接调用)之前完成。

希望这有帮助。

乔治

于 2011-02-22T00:42:26.410 回答
1

关于如何在 AOS 上实现 AT 集,肯定有一些有趣的事情。问题是很难知道您实际上是直接与调制解调器交谈还是通过几个抽象层(更有可能)。有关 AOS 平台上可用的 AT 命令以及硬件的最新评论,请参阅帖子:

“如何使用 AT 命令与调制解调器对话” http://forum.xda-developers.com/showthread.php?t=1471241

于 2012-01-31T16:03:26.930 回答