Skip to content

Unable to detect the beacons #266

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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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