Skip to content

rtsdeveloper/rn-mtbeaconplus

Repository files navigation

rn-mtbeaconplus

React Native module for Bluetooth Low Energy (BLE) scanning and device discovery.

Table of Contents

  • Installation
  • Usage/Examples
  • Method & Events
  • Authors
  • Contributing

Documentation

Methods

  • startScan(listener: (devices: ?Collection) => void) - Starts scanning for nearby devices.
  • stopScan() Stops the ongoing scan.
  • state(): Promise<$Keys> Gets the current Bluetooth state.
  • onStateChange(listener: (state: ?String) => void) Subscribes to state change events.
  • offStateChange() Unsubscribes from state change events.
  • destroy() Destroys the manager instance.

Events

  • ScanEvent: Triggered when new devices are scanned.
  • StateChangeEvent: Triggered when the Bluetooth state changes.
  • RestoreStateEvent: Triggered when the internal state is restored.
  • DisconnectionEvent: Triggered when a device disconnects.

Installation

Installation with npm:

  npm i rn-mtbeaconplus --save
  yarn add rn-mtbeaconplus

Android Installation : To link the native module:

 react-native link rn-mtbeaconplus

iOS Installation :

 pod 'react-native-mtbeacon-plus-swift', :path => '../node_modules/rn-mtbeaconplus'

Usage/Examples

import React, { useEffect } from 'react';
// Importing from your package
import { useMTBeaconPlusManager } from 'rn-mtbeaconplus';

const BeaconScanner = () => {
  const { startScan, stopScan, getState, onStateChange, offStateChange } = useMTBeaconPlusManager();

  useEffect(() => {
    // Fetch the initial Bluetooth state and log it
    getState().then((state) => {
      console.log('Initial Bluetooth State:', state);
    });

    // Subscribe to state changes and log them
    onStateChange((newState) => {
      console.log('Bluetooth State Changed:', newState);
    });

    // Cleanup on unmount
    return () => {
      offStateChange();
      stopScan();
    };
  }, []);

  const handleStartScan = () => {
    // Start scanning and log the scanned devices
    startScan((scannedDevices) => {
      console.log('Scanned Devices:', scannedDevices);
    });
  };

  const handleStopScan = () => {
    stopScan();
    console.log('Scan stopped');
  };

  // Automatically start scanning when the component mounts
  useEffect(() => {
    handleStartScan();

    return () => {
      handleStopScan();
    };
  }, []);

  return null;
};

export default BeaconScanner;

Troubleshooting

  • Ensure that your app has the necessary permissions to access Bluetooth.
  • Check if the device supports BLE functionality.
  • Verify that the native module is properly linked and compiled.

Authors

Contributing

Contributions are welcome! Please feel free to submit pull requests or issues.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published