制作一个可以通过蓝牙发送数据的应用程序似乎是一项相对平凡的任务,但过去几天我一直在努力解决这个问题,所以我正在寻找任何想法。我正在运行 OS X 10.10 并使用 Nexus 5 Android 设备。这是我到目前为止所尝试过的:
我需要一个在我的笔记本电脑上运行的服务器程序,并且我需要一个在我的手机上运行的客户端 Android 应用程序。但是,(如果我错了,请纠正我)在我的计算机上运行的服务器程序需要能够访问Android蓝牙API,因为我需要使用BluetoothServerSocket(基于Google的Android蓝牙tutorial中提供的服务器端代码)。
由于它是服务器端代码,我需要在服务器上运行它,因此我构建了一个 Java Servlet,并从 Eclipse 内部运行它,但我不知道如何从动态 Web 应用程序内部访问 Android API。
因此,我开始遵循 Bluecove 库使之成为可能的方法:http://luugiathuy.com/2011/02/android-java-bluetooth/
我尝试让 Bluecove 与 OS X 一起工作,但是这涉及到很多问题。我找到了一些解决方法,然后在处理 IOBluetoothLocalDeviceReadSupportedFeatures 设备时遇到错误,Apple 在其后续操作系统版本中删除了该设备(但 Bluecove 依赖于它)。
我找到了修复here安装了旧的 IOBluetooth 库并更改 DYLD_LIBRARY_PATH 以指向它。不幸的是,这没有效果(我不知道我是否正确更改了库路径...我按照 this 帖子中的答案中解决方案 1 的说明进行操作)。
无论如何,我觉得我让这项任务变得过于复杂,并且正在寻找任何指导 - 无论是总体方法还是我错过的具体事情。主要问题是访问打算在我的笔记本电脑上运行的服务器程序内的 Android 蓝牙 API。
最佳答案
我最终使用 WiFi 来发送数据,因为有更好的软件支持。
但是,如果有人想追求蓝牙路径,一种可能是运行 OS X Lion(具有 IOBluetooth 库)作为 VM,并在 VM 上运行服务器端 Bluecove 代码。这需要连接一个单独的蓝牙 USB 适配器,因为虚拟机无法访问其主机的蓝牙硬件 - 可能有一种方法,但默认情况下它无法访问内置的蓝牙硬件。
这不是一个理想的解决方案,但我不知道在 Bluecove 发布最新操作系统版本支持的版本之前是否有很多选择。
关于java - 通过蓝牙在 Android 手机和运行 OS X 的笔记本电脑之间发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33931557/