gpt4 book ai didi

安卓 Wi-Fi 直连 : WifiP2pInfo object passed on to onConnectionInfoAvailable callback has null groupOwnerAddress property

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:19 26 4
gpt4 key购买 nike

我正在尝试让两个 Android 设备使用 WiFi Direct 相互通信。我在 ListView 中列出了可用的设备,当用户点击设备时,我通过调用 connect 来启动连接。来自 WifiP2pManager 的方法类(class)。在 onSucces 方法中,我调用了 requestConnectionInfo 方法以获取组所有者的 IP 地址,以便我可以连接到 ServerSocket

问题是我第一次尝试连接传递给 onConnectionInfoAvailable 回调的 WifiP2pInfo 对象具有 null groupOwnerAddress 属性。这对我来说没有意义,因为我在 connect 方法的 onSuccess 回调中调用了 reuestConnectionInfo,这意味着连接已经建立。

如果我再次尝试通过点击设备名称再次连接)几秒钟后,WifiP2pInfo 对象现在包含 GO 的地址并且我能够启动 TCP 连接。

我试过在调用 requestConnectionInfo 之前让线程休眠几秒钟,但我仍然遇到同样的问题。

@Override
public void onDialogPositiveClick(DialogFragment dialog, final String enteredPin) {

WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress = mDevice.deviceAddress;
config.groupOwnerIntent = 0;
mManager.connect(mChannel, config, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {

mManager.requestConnectionInfo(mChannel, new WifiP2pManager.ConnectionInfoListener() {
@Override
public void onConnectionInfoAvailable(WifiP2pInfo info) {
InetAddress ownerAddress=info.groupOwnerAddress;

if (ownerAddress!=null) {
Log.d("MainActivity ",ownerAddress.toString());
ConnectAsyncTask asyncTask=new ConnectAsyncTask(MainActivity.this,ownerAddress,8888,enteredPin);
asyncTask.execute();
} else {
Toast.makeText(MainActivity.this, "Connection failed! Try again!", Toast.LENGTH_LONG).show();
}
}
});

@Override
public void onFailure(int reason) {

}
});
}

最佳答案

当捕获到 WIFI_P2P_CONNECTION_CHANGED_ACTION 广播时,ConnectionInfo 可用。此广播在 WifiP2pDevice 连接或断开连接时触发。这是你的问题。如果设备断开连接,此广播将触发,但该设备不再处于组中。您必须检查更改操作以决定设备连接或断开连接。 :

public void onConnectionInfoAvailable(WifiP2pInfo info) {
NetworkInfo networkInfo = intent.getParcelableExtra(WifiP2pManager.EXTRA_NETWORK_INFO);
if (networkInfo.isConnected()) {
//connected
} else {
//disconnected
}
}

关于安卓 Wi-Fi 直连 : WifiP2pInfo object passed on to onConnectionInfoAvailable callback has null groupOwnerAddress property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26972682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com