首页 > 解决方案 > Android WiFi直接请求Peers没有在附近找到任何对等点

问题描述

背景:使用的设备:三星 Galaxy Note 10+、三星 Galaxy S8

  1. 我正在开发一个使用 WiFi-direct 传输照片的 Android 应用程序。
  2. 为此,我首先在两个设备之间建立 BLE 连接,以便它们可以通过 BLE 特性交换 macAddress 数据。
  3. 在“OnServiceDiscovered”回调方法中发现蓝牙服务后,我调用“discoverPeers”方法。
  4. 当“discoverPeers()”成功时,WifiP2PManager 调用“requestPeers(channel, PeerListListener)”
  5. 奇怪的是,尽管存在许多 wifi 设备,但 wifi 设备列表始终是空的。

这是代码

public void discoverWifiPeers() {
        manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
            @Override
            public void onSuccess() {
                Log.e("INFO", "Discover Peers succeeded");
                manager.requestPeers(channel, myPeerListListener);
            }
            @Override
            public void onFailure(int reasonCode) {
                Log.e("Error", "Discover Peers failed");
            }
        });
    }

private WifiP2pManager.PeerListListener myPeerListListener = new WifiP2pManager.PeerListListener() {
        @Override
        public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
            for (WifiP2pDevice device : wifiP2pDeviceList.getDeviceList())
            {
                if(!wifiDeviceList.contains(device))
                    wifiDeviceList.add(device);
            }
            Log.i(CommonConstants.INFO, "onPeersAvailable() - devicelist =>" + wifiDeviceList.size());
        }
    };

我采取的措施:

private void requestCoarseLocation(){
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
                != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.ACCESS_COARSE_LOCATION)) {

            } else {
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                        CommonConstants.REQUEST_COARSE_LOCATION
                );
            }
        }
    }
}

如何始终保证附近有设备的 wifi 设备列表?

标签: androidwifiandroid-wifi

解决方案


推荐阅读