小编idz*_*ski的帖子

Android Wi-Fi Direct:传递给onConnectionInfoAvailable回调的WifiP2pInfo对象具有null groupOwnerAddress属性

我试图让两个Android设备使用WiFi Direct与对方进行通信.我列出了a中可用的设备,ListView当用户点击设备时,我通过调用WifiP2pManager类的connect方法启动连接.在该方法中,我调用该方法以获取组所有者的IP地址,以便我可以连接到a .onSuccesrequestConnectionInfoServerSocket

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

几秒钟之后,如果我再次尝试通过再次点击设备名称来连接,则该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();
                    } …
Run Code Online (Sandbox Code Playgroud)

android wifi-direct

3
推荐指数
1
解决办法
2086
查看次数

标签 统计

android ×1

wifi-direct ×1