155 lines
3.8 KiB
Markdown
155 lines
3.8 KiB
Markdown
# react-native-android-wifi
|
|
|
|
A react-native module for viewing and connecting to Wifi networks on Android devices.
|
|
|
|

|
|
|
|
### Installation
|
|
|
|
### Add it to your android project
|
|
```bash
|
|
npm install react-native-android-wifi --save
|
|
```
|
|
|
|
### Install the native dependencies
|
|
Use react-native link to install native dependencies automatically:
|
|
```bash
|
|
react-native link
|
|
```
|
|
or do it manually as described [here](docs/link-manually.md).
|
|
|
|
### Example usage
|
|
|
|
```javascript
|
|
import wifi from 'react-native-android-wifi';
|
|
```
|
|
|
|
Wifi connectivity status:
|
|
```javascript
|
|
wifi.isEnabled((isEnabled) => {
|
|
if (isEnabled) {
|
|
console.log("wifi service enabled");
|
|
} else {
|
|
console.log("wifi service is disabled");
|
|
}
|
|
});
|
|
```
|
|
|
|
Enable/Disable wifi service:
|
|
```javascript
|
|
//Set TRUE to enable and FALSE to disable;
|
|
wifi.setEnabled(true);
|
|
```
|
|
|
|
Sign device into a specific network:
|
|
> This method doesn't have a callback when connection succeeded, check [this](https://github.com/devstepbcn/react-native-android-wifi/issues/4) issue.
|
|
|
|
```javascript
|
|
//found returns true if ssid is in the range
|
|
wifi.findAndConnect(ssid, password, (found) => {
|
|
if (found) {
|
|
console.log("wifi is in range");
|
|
} else {
|
|
console.log("wifi is not in range");
|
|
}
|
|
});
|
|
```
|
|
|
|
Disconnect current wifi network
|
|
```javascript
|
|
wifi.disconnect();
|
|
```
|
|
|
|
Get current SSID
|
|
```javascript
|
|
wifi.getSSID((ssid) => {
|
|
console.log(ssid);
|
|
});
|
|
```
|
|
|
|
Get current BSSID
|
|
```javascript
|
|
wifi.getBSSID((bssid) => {
|
|
console.log(bssid);
|
|
});
|
|
```
|
|
|
|
Get all wifi networks in range
|
|
```javascript
|
|
/*
|
|
wifiStringList is a stringified JSONArray with the following fields for each scanned wifi
|
|
{
|
|
"SSID": "The network name",
|
|
"BSSID": "The address of the access point",
|
|
"capabilities": "Describes the authentication, key management, and encryption schemes supported by the access point"
|
|
"frequency":"The primary 20 MHz frequency (in MHz) of the channel over which the client is communicating with the access point",
|
|
"level":"The detected signal level in dBm, also known as the RSSI. (Remember its a negative value)",
|
|
"timestamp":"Timestamp in microseconds (since boot) when this result was last seen"
|
|
}
|
|
*/
|
|
wifi.loadWifiList((wifiStringList) => {
|
|
var wifiArray = JSON.parse(wifiStringList);
|
|
console.log(wifiArray);
|
|
},
|
|
(error) => {
|
|
console.log(error);
|
|
}
|
|
);
|
|
```
|
|
|
|
connectionStatus returns true or false depending on whether device is connected to wifi
|
|
```javascript
|
|
wifi.connectionStatus((isConnected) => {
|
|
if (isConnected) {
|
|
console.log("is connected");
|
|
} else {
|
|
console.log("is not connected");
|
|
}
|
|
});
|
|
```
|
|
|
|
Get connected wifi signal strength
|
|
```javascript
|
|
//level is the detected signal level in dBm, also known as the RSSI. (Remember its a negative value)
|
|
wifi.getCurrentSignalStrength((level) => {
|
|
console.log(level);
|
|
});
|
|
```
|
|
|
|
Get connected wifi frequency
|
|
```javascript
|
|
wifi.getFrequency((frequency) => {
|
|
console.log(frequency);
|
|
})
|
|
```
|
|
|
|
Get current IP
|
|
```javascript
|
|
//get the current network connection IP
|
|
wifi.getIP((ip) => {
|
|
console.log(ip);
|
|
});
|
|
```
|
|
|
|
Remove/Forget the Wifi network from mobile by SSID, returns boolean
|
|
``` javascript
|
|
wifi.isRemoveWifiNetwork(ssid, (isRemoved) => {
|
|
console.log("Forgetting the wifi device - " + ssid);
|
|
});
|
|
```
|
|
|
|
Starts native Android wifi network scanning and returns list
|
|
``` javascript
|
|
wifi.reScanAndLoadWifiList((wifiStringList) => {
|
|
var wifiArray = JSON.parse(wifiStringList);
|
|
console.log('Detected wifi networks - ',wifiArray);
|
|
});
|
|
```
|
|
|
|
Method to force wifi usage. Android by default sends all requests via mobile data if the connected wifi has no internet connection.
|
|
``` javascript
|
|
//Set true/false to enable/disable forceWifiUsage.
|
|
//Is important to enable only when communicating with the device via wifi
|
|
//and remember to disable it when disconnecting from device.
|
|
wifi.forceWifiUsage(true);
|