# rn-ble-scan

> This project will give you information about available bluetooth devices.

Latest version **1.0.1** (published 2020-07-17) · MIT license · 0 weekly downloads

## Install

```sh
npm install rn-ble-scan
pnpm add rn-ble-scan
yarn add rn-ble-scan
bun add rn-ble-scan
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2020-07-17 |
| First published | 2020-07-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 24.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Shilpa S |
| Maintainers | shilpawinjit |
| Keywords | scan BLE devices |

## Links

- npm: https://www.npmjs.com/package/rn-ble-scan
- npm.io page: https://npm.io/package/rn-ble-scan

## Recent versions

- 1.0.1 (latest) — 2020-07-17
- 1.0.0 — 2020-07-17

## README

## 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`:

    ```javascript
    import ScanBLE from 'rn-ble-scan'; 
    ```
    ```Example:```
    ```javascript
    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;

   ```

---
_Source: https://npm.io/package/rn-ble-scan · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
