我使用Android的wifi p2p连接两台设备。我想知道在建立连接时两个设备是否有任何方法可以知道彼此的名字。当设备启动连接请求时,很容易,因为您从列表中选择了对等设备,因此您可以看到名称。问题是关注接收连接请求的设备!!!
我想它必须是可能的,因为你第一次尝试连接时,会看到一个弹出的对等名称,以接受连接。但我不知道在编写应用程序时可以找到这些信息的位置。
我想它必须存储在NetworkInfo中(当您收到状态更改时)或WifiP2pInfo中(当连接信息可用时)。
答案 0 :(得分:3)
当您收到WIFI_P2P_CONNECTION_CHANGED_ACTION广播时,如果您的API等级为18或更高,则意图中会有额外的内容,称为EXTRA_WIFI_P2P_GROUP。
这将返回一个WifiP2pGroup,您可以在其上调用getClientList()。这为您提供了WifiP2pDevices的集合。一旦你有了WifiP2pDevice,你就可以得到“deviceName”字段。
答案 1 :(得分:1)
获得同行名称是直截了当的。获得设备列表后
public String getName(WifiP2pDevice device){
return device.deviceName;
}
不确定这是否是你所要求的,请原谅我,如果这不是答案。
答案 2 :(得分:0)
有这样的requestConnectionInfo方法你可以获得有关连接deivce的所有信息,只需在连接完成后实现这个,如下所示
wifiManager.requestConnectionInfo(wifichannel, new WifiP2pManager.ConnectionInfoListener() {
@Override
public void onConnectionInfoAvailable(WifiP2pInfo info) {
//by info you can get host address and isGroupowner or else information you to
implement your code after this
}