1.0.1 • Published 4 years ago

rn-ble-scan v1.0.1

Weekly downloads
1
License
MIT
Repository
-
Last release
4 years ago

React Native Library for scan Bluetooth using BLE

This project will give you information about available bluetooth devices.

Getting started

Installing it as a library in your main project

npm i rn-ble-scan
	or
yarn add rn-ble-scan

Add permissions for android in AndroidManifest.xml:

```xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:required="true" android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:required="true" android:name="android.permission.CHANGE_WIFI_STATE"/>    
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
```
  1. Simply import it by the name defined in your library's package.json:

    import ScanBLE from 'rn-ble-scan'; 

    Example:

    import React, { useEffect, useState } from 'react';
    import { View, Text, StyleSheet, Button, NativeModules } from 'react-native';
    import ScanBLE from 'rn-ble-scan';
    
    const App = () => {
    
        const [uid, setUid] = useState(null);
    
        const persmission = async () => {
            try {
            // permission to access location to set wifi connection
            const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION)
                .then(res => {
                if (res === "granted") {
                    console.log("Permission granted!");
                } else {
                    console.log("Please provide location permission to scan BT devices");
                }
                });
            } catch (err) {
            console.warn(err)
            }
        }
    
        useEffect(() => {
            permission();
            UUIDGenerator.getRandomUUID((newUid) => {
            setUid(newUid);
            });
        }, [setUid, UUIDGenerator,permission])
    
        <!-- start scanning devices -->
        const startScanning = async () => {
            console.log("StartScanning -> uid", uid)
            await samplecall.advertise(uid);
            await samplecall.discover(uid, (value) => {
            console.log("Device", value)
            });
        }
    
        return (
            <View>
            <Text>UUID: {uid}</Text>
            <Button
            title="Scan Bluetooth"
            onPress={startScanning}/>
            </View>
        )
    };
    
    const styles = StyleSheet.create({
        screen: {
            flex: 1,
            justifyContent: 'center',
            alignItems: 'center'
        }
    });
    export default App;