Skip to content

Unable to detect the beacons #266

@Srikanth-Enuguru

Description

@Srikanth-Enuguru

Version

1.2.9

Platform

Android

OS version

android 12

Steps to reproduce

import Beacons from '@mindsoftcreative/react-native-beacons-manager';

function App(): JSX.Element {
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
  const [state, setState] = useState([]);

  useEffect(() => {
    requestLocationPermission();
    Beacons.init();
    Beacons.detectIBeacons();

    const beaconsServiceDidConnect = Beacons.BeaconsEventEmitter.addListener(
      'beaconServiceConnected',
      () => {
        console.log('service connected');
        startRangingAndMonitoring();
      },
    );

    const beaconsDidRange = DeviceEventEmitter.addListener(
      'beaconsDidRange',
      data => {
        console.log('beaconsDidRange beacons!', data);
      },
    );

    const regionDidEnter = DeviceEventEmitter.addListener(
      'regionDidEnter',
      data => {
        console.log('regionDidEnter beacons!', data);
      },
    );

    return () => {
      console.debug('[app] main component unmounting. Removing listeners...');
      stopRangingAndMonitoring();
      beaconsServiceDidConnect.remove();
      beaconsDidRange.remove();
      regionDidEnter.remove();
    };
  }, []);

  const startRangingAndMonitoring = async () => {
    try {
      const data1 = await Beacons.startRangingBeaconsInRegion('REGION3');
      console.log('Beacons ranging started successfully', data1);
      const data2 = await Beacons.startMonitoringForRegion('REGION3');
      console.log('Beacons monitoring started successfully', data2);
    } catch (error) {
      console.log('error', error);
      throw error;
    }
  };

  const stopRangingAndMonitoring = async () => {
    try {
      await Beacons.stopRangingBeaconsInRegion('REGION3');
      console.log('Beacons ranging stopped successfully');
      await Beacons.stopMonitoringForRegion('REGION3');
      console.log('Beacons monitoring stopped successfully');
    } catch (error) {
      throw error;
    }
  };

  const requestLocationPermission = async () => {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        {
          title: 'Location Permission',
          message:
            'This example app needs to access your location in order to use bluetooth beacons.',
          buttonNeutral: 'Ask Me Later',
          buttonNegative: 'Cancel',
          buttonPositive: 'OK',
        },
      );
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        return true;
      } else {
        // permission denied
        return false;
      }
    } catch (err) {
      console.warn(err);
      return false;
    }
  };

  

  return (
    <SafeAreaView style={styles.sectionContainer}>
      <View>
        <Text>Hello</Text>
      </View>
    </SafeAreaView>
  );
}

Actual behavior

Console output:
Found beacons! {"beacons": [], "identifier": "REGION3", "uuid": ""}

Please help me.
Am I missing anything here?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions