30

这是场景:

我需要为 Android 编写一个应用程序来为带有蓝牙加密狗的 PC 创建一个 RFCOMM 套接字(我也将编写服务器)。

我的要求是用户不必手动配对设备。

实际上,通过一个大技巧,我正在使用createInsecureRfcommSocket

一个小场景:我有一个 Android 应用程序,它与打开了 RFCOMM 套接字的 Linux 机器交换信息。我可以在设备上手动设置 PIN(硬编码是一个选项)

我正在寻找不同的道路:

编写 JNI 包装器

正如 Max Kellermann在这里所做的那样,我可以编写一个 JNI 层来完成所有配对阶段。这应该是一个不错的选择,但是有一个问题:

NDK 4b 不提供 libbluetooth 库,因此 -lbluetooth 以及 NDK v.3 都失败了。

选项:

  1. 找到 NDK 1.5(包括 lib 蓝牙)。经过几天的网络搜索,我一直无法找到。任何人有或知道我在哪里可以找到它?
  2. 自己为 Android 编译 libbluetooth 并将它们用于 -lbluetooth。那里没有运气,我无法建造它们。有什么提示吗?

使用 API 公开的内容

任何人都知道如何使用createRfcommSocketToServiceRecord并让用户不要手动配对设备?是否可以?我应该如何编写服务器?

我不知道的东西

也许(当然!)有些事情我不知道。也许我可以用别的东西?不是RFCOMM?社会民主党?

也许我可以手动与 Android API 配对?

如果不只是问的话,我希望已经足够清楚了。再说一次,因为这不是第一次,我在你手中:)

感谢所有小伙伴的支持!

4

3 回答 3

2

最后,我可以说你不能

即使您找到了一种方法,使用包装器、编写 C 模块等等,android 进化也可能会改变您正在使用的东西。

所以,别无选择。可悲的是。

让我们看看未来 Android 蓝牙 API 将如何变化。

于 2011-02-20T13:22:41.403 回答
0

是的,我们可以创建它 Rfcomsocket 并监听套接字,无需用户担心,也无需配对设备。 https://code.tutsplus.com/tutorials/create-a-bluetooth-scanner-with-androids-bluetooth-api--cms-24084

跟着这个!!

于 2019-11-06T09:56:53.793 回答
-2

Android 蓝牙 API 尚未最终确定,改变。使用风险自负。此类实现了蓝牙 RFCOMM 层的 API。RFCOMM 套接字与普通套接字相似,因为它需要一个地址和一个端口号。区别当然是地址是蓝牙设备地址,端口号是RFCOMM通道。API 允许通过方法 bind、listen 和 accept 建立侦听套接字,以及使用 connect、connectAsync 和 waitForAsyncConnect 建立传出连接。构建套接字后,您需要创建它,然后在使用完毕后将其销毁。create 和 accept 都为实际数据返回一个 FileDescriptor。或者,您可以调用 getInputStream 和 getOutputStream 来检索相应的流,而无需通过 FileDescriptor。

于 2011-01-21T05:52:02.550 回答