Маяк флаттера IOS не может сканировать с настройками региона и UUID - PullRequest
0 голосов
/ 26 апреля 2020

У меня проблема в том, что во флаттере, который я заметил, нет возможности работать или использовать традиционный блютуз, так как нет библиотеки, поддерживающей его. Я проверил flutter_blue-master et c. И тогда я увидел, что он может вести себя как маяк. Поэтому я использовал коды ниже. Для android я просто установил

Region(
      identifier: 'com.example.myDeviceRegion',)); its able to work. So the same I set in IOS its not able to work? So what is best workaround for blueetooth in flutter? I am using this package flutter_beacon. For the beacon broadcasting I am using this package beacon_broadcast.

initScanBeacon() async {
    await flutterBeacon.initializeScanning;
    await checkAllRequirements();
    if (!authorizationStatusOk ||
        !locationServiceEnabled ||
        !bluetoothEnabled) {
      print('RETURNED, authorizationStatusOk=$authorizationStatusOk, '
          'locationServiceEnabled=$locationServiceEnabled, '
          'bluetoothEnabled=$bluetoothEnabled');
      return;
    }
    /*final regions = <Region>[
      Region(
        identifier: 'com.example.myDeviceRegion',       
      ),
    ];*/
    final regions = <Region>[];
    regions.add(Region(
      identifier: 'com.example.myDeviceRegion',
      minor: 100,
      major: 1));

    if (_streamRanging != null) {
      if (_streamRanging.isPaused) {
        _streamRanging.resume();
        return;
      }
    }

    _streamRanging =
        flutterBeacon.monitoring(regions).listen((MonitoringResult result) {
      print(result);
      if (result != null && mounted) {
        print("GOT RESTULT READY");
        setState(() {
          //_regionBeacons[result.region] = result.region;
          _beacons.clear();
          print("List value is json"+result.toJson.toString());
          _regionBeacons.values.forEach((list) {
            print("List value is");
            _beacons.addAll(list);
            print("after Beacon size now is "+_beacons.length.toString());
          });
          //_beacons.sort(_compareParameters);
          print("Beacon size now is "+_beacons.length.toString());
        });
      }
    });
  }

1 Ответ

0 голосов
/ 26 апреля 2020

Несколько вещей, которые нужно проверить:

  • Убедитесь, что в вашем определении региона указано значение близостиUUID. Я удивлен, что это работает даже на Android без этого. На iOS это определенно не будет работать вообще - iOS требует, чтобы маяк близости UUID был задан заранее для обнаружения. Значение, которое вы указываете для prximityUUID, должно точно соответствовать тому, что рекламирует ваш маяк, иначе вы его не увидите.

  • Убедитесь, что вы выполнили все шаги настройки iOS здесь: https://pub.dev/packages/flutter_beacon

  • Удостоверьтесь, что вы предоставили разрешение на местоположение своему приложению iOS. Вы можете go в Настройки -> Имя вашего приложения, чтобы проверить, предоставлено ли разрешение на местоположение.

  • Убедитесь, что в настройках телефона включен Bluetooth

  • Убедитесь, что в настройках телефона включено местоположение

...