1

制作一个可以通过蓝牙发送数据的应用程序似乎是一项相对平凡的任务,但过去几天我一直在努力解决这个问题,所以我正在寻找任何想法。我正在运行 OS X 10.10 并使用 Nexus 5 Android 设备。这是我到目前为止所尝试的:

我需要一个在我的笔记本电脑上运行的服务器程序,我需要一个在我的手机上运行的客户端 android 应用程序。但是,(如果我错了,请纠正我)我的计算机上运行的服务器程序需要能够访问 Android 蓝牙 API,因为我需要使用 BluetoothServerSocket(基于 Google 的 Android 蓝牙教程中提供的服务器端代码) .

因为它是服务器端代码,所以我需要在服务器上运行它,所以我构建了一个 Java Servlet,我从 Eclipse 内部运行它,但我不知道如何从动态 Web 应用程序内部访问 Android API。

因此,我开始采用 Bluecove 库使之成为可能的这种方法:http: //luugiathuy.com/2011/02/android-java-bluetooth/

我尝试让 Bluecove 与 OS X 一起工作,但其中涉及到很多问题。我找到了一些解决方法,然后在处理 Apple 在其更高版本的操作系统中删除的 IOBluetoothLocalDeviceReadSupportedFeatures 设备时出错(但 Bluecove 依赖于它)。

我在这里找到了一个修复程序,它安装了旧的 IOBluetooth 库并将 DYLD_LIBRARY_PATH 更改为指向它。不幸的是,这没有效果(我不知道我是否正确更改了库路径......我按照解决方案 1 在这篇文章的答案中的说明进行操作)。

无论如何,我觉得我让这项任务过于复杂,并且正在寻找任何指导 - 就整体方法或我错过的具体事情而言。主要问题是访问旨在在我的笔记本电脑上运行的服务器程序中的 Android 蓝牙 API。

4

1 回答 1

0

我最终最终使用 WiFi 发送数据,因为有更好的软件支持。

但是,如果有人想走蓝牙路径,一种可能性是将 OS X Lion(具有 IOBluetooth 库)作为 VM 运行,并在 VM 上运行服务器端 Bluecove 代码。这将需要连接一个单独的蓝牙 USB 加密狗,因为 VM 无法访问其主机的蓝牙硬件 - 可能有一种方法,但默认情况下它无法访问内置的蓝牙硬件。

这不是一个理想的解决方案,但我不知道在 Bluecove 发布最新操作系统版本支持的版本之前是否有很多选择。

于 2016-01-05T01:55:33.663 回答