0

I am developig mobile application using react native.Application has to connect iot device using ble.I used react-native-ble-plx library.In this library i used startDeviceScan function of this library.But function does not work.I will share my code.Can anyone help my quesiton?

HomeScreen.js

import React, { useState, useEffect } from 'react';
import { Text, View, Button, StyleSheet, SafeAreaView, TouchableOpacity } from 'react-native';
import useBLE from '../../connections/BLE/useBle';
import { Device,BleManager } from 'react-native-ble-plx';
import DeviceModal from '../../../DeviceConnectionModal';




const HomeScreen = () => {

  const _BleManager = new BleManager();

  const startScan = () => {
    console.log("clicked scan button");

  _BleManager.startDeviceScan(null, {
    allowDuplicates: false,
    },
    async (error, device) => {
      console.log("scanning....");
      if (error) {
        _BleManager.stopDeviceScan();
      }
      console.log(device.localName, device.name);
      if (device.localName == 'Test' || device.name == 'Test') {
        // setDevices([...devices, device]);
        _BleManager.stopDeviceScan();} }, );};

  return (

    <SafeAreaView style={styles.container}>
      <View style={styles.heartRateTitleWrapper}>

        <Text style={styles.heartRateTitleText}>
          Please Connect to a Heart Rate Monitor
        </Text>

      </View>
      <TouchableOpacity
        onPress={startScan}
        style={styles.ctaButton}
      >
        <Text style={styles.ctaButtonText}>
          {"Scan Devices"}
        </Text>
      </TouchableOpacity>
     
    </SafeAreaView>
  )
}


export default HomeScreen

And also I added my android manifes file to these lines:

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation"/>
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/> 

0 Answers0