如何检索onPeersAvailable()列表

时间:2019-05-17 13:31:58

标签: java android react-native p2p wifi-direct

我正在React-native上开发Wifi Direct对等发现应用程序。我对检索onPeersAvailable()生成的对等列表有些困惑。当单击discoverPeers()按钮时,我应该如何编码以触发peerList返回(即代码上的var params)。

发现功能似乎运行良好,据我所知,我应该将生成的LIST传递给另一个函数,并且该函数(异步)将使LIST返回本机。但是,我只是暂时不知道该怎么做。如果您可以提供一些代码的骨架来做到这一点,那对我来说将是一个很大的帮助。

  • 在此生成对等列表。 var params是peerList的容器。
private WifiP2pManager.PeerListListener peerListListener = new 
    WifiP2pManager.PeerListListener() {
        @Override
        public void onPeersAvailable(WifiP2pDeviceList peerList) {
            WritableArray array = Arguments.createArray();

            for (WifiP2pDevice device : peerList.getDeviceList()) {
                WritableMap params = Arguments.createMap();
                params.putString("device", device.deviceName);
                params.putString("address", device.deviceAddress);
                array.pushMap(params);
            }

            /// how to return this params variable back to react native
            WritableMap params = Arguments.createMap();
            params.putArray("devices", array);           
        }
};
  • 启动对等发现功能
    @ReactMethod
    public void discoverPeers(final Callback callback) {
        manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
            @Override
            public void onSuccess() {
                callback.invoke(true);             
            }
            @Override
            public void onFailure(int reasonCode) {
                callback.invoke(false);             
            }
        });
    }
  • 这是按钮本机响应本机以触发discoverPeers()函数的地方
Discoverpeers(){

    WifiDirect.discoverPeers((success) => {
        console.log(success);

        this.setState({wifidirectavailable: success});
      },
      (error) => {
        this.setState({wifidirectavailable: error});
      }
    );  

  }

我期待对等列表发现的返回功能,但是到目前为止,基于代码我还没有任何回报。

0 个答案:

没有答案