react-native-bluetooth-status
React Native library to query and manage bluetooth state. Querying the bluetooth state works cross-plaform (iOS & Android). In addition, iOS can open the bluetooth settings and Android can directly enable / disable bluetooth.
Getting started
$ npm install react-native-bluetooth-status --save
Mostly automatic installation
$ react-native link react-native-bluetooth-status
Manual installation
iOS
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜react-native-bluetooth-status
and addRNBluetoothManager.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNBluetoothManager.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)<
Android
- Open up
android/app/src/main/java/[...]/MainApplication.java
- Add
import com.solinor.bluetoothstatus.RNBluetoothManagerPackage;
to the imports at the top of the file - Add
new RNBluetoothManagerPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-bluetooth-status' project(':react-native-bluetooth-status').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-bluetooth-status/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-bluetooth-status')
Usage
import { BluetoothStatus } from 'react-native-bluetooth-status';
...
async getBluetoothState() {
try {
const isEnabled = await BluetoothStatus.state();
} catch (error) { console.error(error); }
}
For further usage examples, see the example project using this library.
API
Method | Description |
---|---|
state | Returns a promise, which will return a boolean value, true if bluetooth is enabled, false if disabled. |
enable | Android only Changes bluetooth state. Takes boolean parameter (defaults to true), true to enable, false to disable. Returns a promise, which returns whether the change was successful or not. |
disable | Android only Disables bluetooth, same end result as calling enable(false) . Returns a promise, which returns whether the change was successful or not. |
openBluetoothSettings | iOS only Open OS Settings directly to bluetooth settings, recommended to use from Alert dialog, where user decides to change bluetooth state. |
Thanks
Thanks go to react-native-bluetooth-state library, which was used as the foundation of the iOS implementation. That library hasn't been maintained though, and didn't support Android, or anything other than getting the state.