1.0.3 • Published 6 months ago

@nishit_chauhan/react-native-ble-sdk v1.0.3

Weekly downloads
-
License
ISC
Repository
github
Last release
6 months ago

React Native BLE SDK

A simple JavaScript SDK wrapper for react-native-ble-manager to handle Bluetooth Low Energy (BLE) operations in React Native projects.

Installation

1. Install the SDK

npm install @nishit_chauhan/react-native-ble-sdk

2. Install Peer Dependencies

Since this package relies on react-native-ble-manager, install it in your React Native project:

npm install react-native-ble-manager

3. Link Native Modules

For React Native 0.60 and above, auto-linking should work:

npx pod-install

For older versions, manually link the package:

react-native link react-native-ble-manager

iOS Setup

Add the following permissions to your Info.plist file:

<key>NSBluetoothAlwaysUsageDescription</key>
<string>We require Bluetooth access to connect to BLE devices.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>We need Bluetooth access to communicate with peripherals.</string>

Android Setup

Ensure the following permissions are in AndroidManifest.xml:

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>

For Android 12+, update your AndroidManifest.xml:

<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>

And ensure you request runtime permissions.

Usage

import BLESDK from "react-native-ble-sdk";

// Start scanning for devices
BLESDK.scanDevices([], 10).then(() => console.log("Scanning started"));

// Stop scanning
BLESDK.stopScan().then(() => console.log("Scanning stopped"));

// Connect to a device
BLESDK.connect("DEVICE_ID").then(() => console.log("Connected"));

// Disconnect from a device
BLESDK.disconnect("DEVICE_ID").then(() => console.log("Disconnected"));

// Read characteristic
BLESDK.readCharacteristic(
  "DEVICE_ID",
  "SERVICE_UUID",
  "CHARACTERISTIC_UUID"
).then((data) => console.log("Read data:", data));

// Write characteristic
BLESDK.writeCharacteristic("DEVICE_ID", "SERVICE_UUID", "CHARACTERISTIC_UUID", [
  0x01,
]).then(() => console.log("Write successful"));

// Start notification
BLESDK.startNotification(
  "DEVICE_ID",
  "SERVICE_UUID",
  "CHARACTERISTIC_UUID"
).then(() => console.log("Notification started"));

// Stop notification
BLESDK.stopNotification(
  "DEVICE_ID",
  "SERVICE_UUID",
  "CHARACTERISTIC_UUID"
).then(() => console.log("Notification stopped"));

// Retrieve connected devices
BLESDK.retrieveConnectedDevices([]).then((devices) =>
  console.log("Connected devices:", devices)
);

// Check if a device is connected
BLESDK.isPeripheralConnected("DEVICE_ID").then((isConnected) =>
  console.log("Device connected:", isConnected)
);

// Read RSSI
BLESDK.readRSSI("DEVICE_ID").then((rssi) => console.log("RSSI:", rssi));

Event Listeners

Listen for BLE events:

// Listen for stop scan
BLESDK.onStopScan(() => {
  console.log("Stopped scanning");
});

// Listen for discovered devices
BLESDK.onDiscoverPeripheral((data) => {
  console.log("Discovered Device:", data);
});

// Listen for connection events
BLESDK.onConnectPeripheral((device) => {
  console.log("Connected to:", device);
});

// Listen for disconnection events
BLESDK.onDisconnectPeripheral((device) => {
  console.log("Disconnected from:", device);
});

License

MIT

1.0.3

6 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago