Java 在Android的PAN中创建蓝牙NAP和PANU,并基于IP相互通信

Java 在Android的PAN中创建蓝牙NAP和PANU,并基于IP相互通信,java,android,bluetooth,pan,Java,Android,Bluetooth,Pan,我是Android和蓝牙的新手。我正在尝试建立一个PAN网络,使用蓝牙的BNEP协议,同时使用PANU和NAP(GN)。我的主要目的是让a设备进行NAP,以便它可以连接到TCP-IP和微微网中的其他PANU 将在NAP中与设备交互。我可以使用Java反射来支持这一点。我使用android.bluetooth.BluetoothPan类作为PAN连接。 因此,我按照以下顺序进行设置: a) 我调用了BluetoothPan的构造函数并创建了实例。[对象创建成功,onServiceConnected

我是Android和蓝牙的新手。我正在尝试建立一个PAN网络,使用蓝牙的BNEP协议,同时使用PANU和NAP(GN)。我的主要目的是让a设备进行NAP,以便它可以连接到TCP-IP和微微网中的其他PANU 将在NAP中与设备交互。我可以使用Java反射来支持这一点。我使用android.bluetooth.BluetoothPan类作为PAN连接。 因此,我按照以下顺序进行设置: a) 我调用了BluetoothPan的构造函数并创建了实例。[对象创建成功,onServiceConnected()处理程序接收到配置文件值5] b) 我将setBluetoothTethering()设置为true[设置后,我使用isTetheringOn()函数检查状态,状态为true]

所以我认为现在这个应用程序会让设备像PANU一样工作?我说得对吗?如果没有,我还需要做什么? 现在我的问题是如何使这个应用程序支持NAP? 由于蓝牙连接已打开,它是否已处于午睡状态? 如果是这样,我可以看到当设备被设置为NAP时分配给它的通信IP或端口号吗。我找不到解决这个问题的办法

我的主要目的是使服务器设备像一个具有一些IP的NAP。使用PANU制作一些客户端设备,现在基于NAP的IP,我可以在PANU端基于IP运行服务发现并进行交互

在此之前,我已经使用listenUsingRfcommWithServiceRecord()[Server]和listenUsingRfcommToServiceRecord()[client]以及developer.android中使用此方法设置通信的许多参考来设置服务和客户端之间的通信。这是建立客户机-服务器通信和使用SDP的非常简单的方法。我这里不使用这个

我只想通过BNEP做这件事


注意:通过ADB调试检查发现,当连接到蓝牙栓系时,分配的IP可以通过“ADB shell IP route”看到,您可以在BT栓系中看到分配给NAP的IP。现在,如何获取此IP是我的问题或下一个任务

在我设置了tethering setBluetoothTethering()并使用connect()API创建PAN网络后,我能够设置PAN


之后,由于TCPIP通信已经开始,我检查了NetworkInterface并调用getHostAddress()来获取IP信息。

我认为setBluetoothTethering()调用将使其成为piconet/PAN中的GN/NAP。但是如何获得午睡的IP。。因为它是通过TCp IP进行通信的,所以它应该有一个IP。。。