A ReactNative module to check Bluetooth and Location status on Android and iOS
npm install react-native-connectivity-status



!platforms

Add react-native-connectivity-status module to your project
$ yarn add react-native-connectivity-status
And link it
$ react-native link react-native-connectivity-status
js
import ConnectivityManager from 'react-native-connectivity-status'// Check if Location Services are enabled
const locationServicesAvailable = await ConnectivityManager.areLocationServicesEnabled()
// Check Location permission
const locationPermission = await ConnectivityManager.isLocationPermissionGranted()
switch(locationPermission) {
case "Location.Permission.Denied":
// ...
break;
case "Location.Permission.Granted.Always":
// ...
break;
case "Location.Permission.Granted.WhenInUse":
// ...
break;
default:
// ...
}
// Check if Bluetooth is ON
const bluetoothIsOn = await ConnectivityManager.isBluetoothEnabled()
`Note: On Android, Location permission state will map on
Location.Permission.Denied and Location.Permission.Granted.Always only.Subscribe to updates
`js
import ConnectivityManager from 'react-native-connectivity-status'const connectivityStatusSubscription = ConnectivityManager.addStatusListener(({ eventType, status }) => {
switch (eventType) {
case 'bluetooth':
console.log(
Bluetooth is ${status ? 'ON' : 'OFF'})
break
case 'location':
console.log(Location Services are ${status ? 'AVAILABLE' : 'NOT available'})
break
}
})
...
// Remeber to unsubscribe from connectivity status events
connectivityStatusSubscription.remove()
``NOTE: Due to possible app rejection from Apple (caused by illegal usage of private URL Scheme "prefs:root" or "App-Prefs:root"), methods for enabling bluetooth and location services have been removed from this module.
---
Made with :sparkles: & :heart: by Mattia Panzeri and contributors