JuanSeBestia/react-native-wifi-reborn

WifiManager.connectToProtectedSSID got 7 arguments , expected 6

Closed this issue · 1 comments

WifiManager.connectToProtectedSSID got 7 arguments , expected 6

import React, {useState} from 'react';
import {View, Text, Button, FlatList, TextInput} from 'react-native';
import WifiManager from 'react-native-wifi-reborn';
import {PermissionsAndroid} from 'react-native';

const WifiScanner = () => {
const [wifiList, setWifiList] = useState([]);
const [connectingToSSID, setConnectingToSSID] = useState(null);
const [password, setPassword] = useState('');

const requestLocationPermission = async () => {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
title: 'Location permission is required for WiFi connections',
message:
'This app needs location permission as this is required ' +
'to scan for wifi networks.',
buttonNegative: 'DENY',
buttonPositive: 'ALLOW',
},
);

  if (granted === PermissionsAndroid.RESULTS.GRANTED) {
    scanWifiNetworks();
  } else {
    console.log('Location permission denied');
  }
} catch (error) {
  console.error('Error requesting location permission:', error);
}

};

const scanWifiNetworks = async () => {
try {
const wifiArray = await WifiManager.loadWifiList();
const connectedSSID = await WifiManager.getCurrentWifiSSID();
const updatedWifiList = wifiArray.map(wifi => ({
...wifi,
isConnected: wifi.SSID === connectedSSID,
}));
setWifiList(updatedWifiList);
} catch (error) {
console.error('Error scanning Wi-Fi networks:', error);
}
};

const connectToWifi = async ssid => {
setConnectingToSSID(ssid);
try {
const isConnected = await WifiManager.connectToProtectedSSID(
ssid,
password,
false, // isWep
);
if (isConnected) {
console.log(Connected to ${ssid});
// Update the isConnected property for the connected network
setWifiList(prevWifiList => {
return prevWifiList.map(wifi => ({
...wifi,
isConnected: wifi.SSID === ssid,
}));
});
} else {
console.log(Failed to connect to ${ssid});
}
} catch (error) {
console.error(Error connecting to ${ssid}:, error);
} finally {
setConnectingToSSID(null);
}
};

return (
<View style={{flex: 1}}>

Available Wi-Fi Networks:

  <FlatList
    data={wifiList}
    keyExtractor={item => item.BSSID}
    renderItem={({item}) => (
      <View
        style={{
          flexDirection: 'row',
          justifyContent: 'space-between',
          alignItems: 'center',
          backgroundColor: item.isConnected ? 'lightgreen' : 'white', // Set background color based on connection status
          padding: 10,
          marginBottom: 5,
        }}>
        <Text>{item.SSID}</Text>
        <Button
          title={
            connectingToSSID === item.SSID
              ? 'Connecting...'
              : item.isConnected
              ? 'Connected'
              : 'Connect'
          }
          onPress={() => connectToWifi(item.SSID)}
          disabled={connectingToSSID !== null}
        />
      </View>
    )}
  />

  <TextInput
    placeholder="Wi-Fi Password"
    secureTextEntry
    onChangeText={setPassword}
    value={password}
    style={{
      paddingHorizontal: 10,
      borderColor: 'gray',
      borderWidth: 1,
    }}
  />
</View>

);
};

export default WifiScanner;

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community attention? This issue may be closed if no further activity occurs.