代码之家  ›  专栏  ›  技术社区  ›  Enrico Carlesso

如何在没有用户输入的情况下创建Android RFCOMM套接字?

  •  30
  • Enrico Carlesso  · 技术社区  · 14 年前

    下面是场景:

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

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

    实际上,通过一个大的黑客,我正在使用 createInsecureRfcommSocket .

    一点 脚本 :我有一个Android应用程序,它与打开RFCOMM套接字的Linux盒交换信息。我可以手动设置设备上的PIN(硬编码是一个选项)

    我在寻找不同的道路:

    编写JNI包装器

    已经做了 here 通过Max Kellermann,我可以编写一个JNI层来完成所有的配对阶段。这应该是个不错的选择,但有一个问题:

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

    选项:

    1. 找到NDK 1.5(包括lib蓝牙)。经过几天的网络搜索,我一直找不到答案。有人知道我在哪里能找到它吗?
    2. 自行编译libbluetooth for Android并将其用于-lbluetooth。不走运,我没法造。有什么线索吗?

    使用api公开的内容

    任何人都知道我该怎么用 createRfcommSocketToServiceRecord 让用户不要手动配对设备?有可能吗?我应该如何编写服务器?

    一些我不知道的事情

    也许(当然!)有件事我不知道。也许我还能用点别的?不是RFCOMM?SDP公司?

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

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

    谢谢大家的支持!

    2 回复  |  直到 9 年前
        1
  •  2
  •   Enrico Carlesso    14 年前

    最后,我可以这么说 你不能 .

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

    所以,别无选择。悲哀地。

    让我们看看Android蓝牙API在未来会有什么变化。

        2
  •  0
  •   Parvesh Khan    5 年前

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

    跟着这个!!

        3
  •  -1
  •   Shahid Karimi    14 年前

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

    推荐文章