Как получить список onPeersAvailable () - PullRequest
0 голосов
/ 17 мая 2019

Я работаю над приложением Wifi Direct для обнаружения пиров на React-native.Я немного озадачен поиском списка пиров, созданного onPeersAvailable ().Как мне кодировать его, чтобы инициировать возврат peerList (а именно, var params в коде), когда кнопка findPeers () нажата.

Кажется, что функция обнаружения работает хорошо. Из того, что я считаю, я должен пройтисгенерированный 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});
      }
    );  

  }

Я ожидаю функцию возврата при обнаружении списка peerlist, но на данный момент у меня нет никакого возврата, основанного на коде.

...