chipweinberger / flutter_blue_plus

Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android, iOS, macOS
Other
723 stars 442 forks source link

[Help]: iBeacons not found #770

Closed salex996 closed 7 months ago

salex996 commented 7 months ago

Requirements

Have you checked this problem on the example app?

Yes

FlutterBluePlus Version

flutter_blue_plus: ^1.31.8

Flutter Version

3.16.7

What OS?

Android

OS Version

14

Bluetooth Module

Google Tensor G2

What is your problem?

Finally, I did a code that scans, however I can't find the two beacons that I am trying to find, I can find them using bluetoothctl in my fedora and using an app called nRF Connect from Nordic semiconductor in my phone, I also have checked all the points in the readme document but nothing works, actually I changed the adv protocol in the beacons so I have one of them sending messages in Eddystone UUID and the other one in iBeacon, but still I can't find them,

The ID of the beacons are E8:EB:1A:CB:56:CA and E5:9F:52:36:E9:BE and their names are GT_V101788 and GT_V101787 both from brand Global Tag S.L.,

Please, can you support me?


The code I did (the devices are really near so I tried to filter by rssi according to the values I obtained from the app nRF Connect):

class BleDevice {
  final String name;
  final String id;
  final int rssi;

  BleDevice({required this.name, required this.id, required this.rssi});
}

Future<List<BleDevice>>findDevices() async {
  List<BleDevice> devices = [];
  Set<String> devicesId = {};
  FlutterBluePlus.startScan(timeout: const Duration(seconds: 20));
  FlutterBluePlus.scanResults.listen((List<ScanResult> results) {
    for (ScanResult r in results) {
      //if(r.device.advName.startsWith('GT_')){
      if(r.rssi > -90 && r.rssi < -30 && !devicesId.contains(r.device.remoteId.toString())){
      devices.add(BleDevice(name: r.device.advName, id: r.device.remoteId.toString(), rssi: r.rssi));
      devicesId.add(r.device.remoteId.toString());
    }
    }
  });
  await Future.delayed(const Duration(seconds: 20));
  return devices;
}

List of the IDs detected in the set devicesId when I finished the code that I did: {68:6E:DA:C1:AB:AC, 50:99:9D:B7:89:F9, F8:4E:58:CF:94:A5, 69:6A:EB:4A:0B:F5, 76:22:67:38:67:A9, 65:F8:37:CC:76:EB, 44:07:F8:E0:2A:14, FD:35:27:5A:BC:83, D1:FF:9B:B3:BE:EC}


Find attached images from app nRF Connect: WhatsApp Image 2024-01-22 at 23 50 51 (1) WhatsApp Image 2024-01-22 at 23 50 51 WhatsApp Image 2024-01-22 at 23 49 59 (3) WhatsApp Image 2024-01-22 at 23 49 59 (2) WhatsApp Image 2024-01-22 at 23 49 59 (1) WhatsApp Image 2024-01-22 at 23 49 59

Logs

Logs of the app (logs of bluetoothctl at the end, I will add a mark at the IDs of the beacons):

2024-01-22 23:43:07.882 22093-22093 nativeloader            com.mycompany.terrazap               D  Configuring clns-4 for other apk /data/app/~~CGj6oloIh0r38HAcKzeHnw==/com.mycompany.terrazap-d158hUtCZ8V6C7mKRKVT2w==/base.apk. target_sdk_version=33, uses_libraries=, library_path=/data/app/~~CGj6oloIh0r38HAcKzeHnw==/com.mycompany.terrazap-d158hUtCZ8V6C7mKRKVT2w==/lib/arm64:/data/app/~~CGj6oloIh0r38HAcKzeHnw==/com.mycompany.terrazap-d158hUtCZ8V6C7mKRKVT2w==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.mycompany.terrazap
2024-01-22 23:43:07.892 22093-22093 GraphicsEnvironment     com.mycompany.terrazap               V  Currently set values for:
2024-01-22 23:43:07.893 22093-22093 GraphicsEnvironment     com.mycompany.terrazap               V    angle_gl_driver_selection_pkgs=[]
2024-01-22 23:43:07.893 22093-22093 GraphicsEnvironment     com.mycompany.terrazap               V    angle_gl_driver_selection_values=[]
2024-01-22 23:43:07.893 22093-22093 GraphicsEnvironment     com.mycompany.terrazap               V  ANGLE GameManagerService for com.mycompany.terrazap: false
2024-01-22 23:43:07.893 22093-22093 GraphicsEnvironment     com.mycompany.terrazap               V  com.mycompany.terrazap is not listed in per-application setting
2024-01-22 23:43:07.893 22093-22093 GraphicsEnvironment     com.mycompany.terrazap               V  Neither updatable production driver nor prerelease driver is supported.
2024-01-22 23:43:07.907 22093-22135 vulkan                  com.mycompany.terrazap               D  searching for layers in '/data/app/~~CGj6oloIh0r38HAcKzeHnw==/com.mycompany.terrazap-d158hUtCZ8V6C7mKRKVT2w==/lib/arm64'
2024-01-22 23:43:07.931 22093-22140 ResourceExtractor       com.mycompany.terrazap               I  Found extracted resources res_timestamp-1-1705962570798
2024-01-22 23:43:07.982 22093-22135 vulkan                  com.mycompany.terrazap               D  added global layer 'VK_LAYER_KHRONOS_validation' from library '/data/app/~~CGj6oloIh0r38HAcKzeHnw==/com.mycompany.terrazap-d158hUtCZ8V6C7mKRKVT2w==/lib/arm64/libVkLayer_khronos_validation.so'
2024-01-22 23:43:08.018 22093-22135 vulkan                  com.mycompany.terrazap               D  searching for layers in '/data/app/~~CGj6oloIh0r38HAcKzeHnw==/com.mycompany.terrazap-d158hUtCZ8V6C7mKRKVT2w==/base.apk!/lib/arm64-v8a'
2024-01-22 23:43:08.053 22093-22093 ompany.terrazap         com.mycompany.terrazap               W  type=1400 audit(0.0:417059): avc:  denied  { read } for  name="max_map_count" dev="proc" ino=22970240 scontext=u:r:untrusted_app_32:s0:c147,c257,c512,c768 tcontext=u:object_r:proc_max_map_count:s0 tclass=file permissive=0 app=com.mycompany.terrazap
2024-01-22 23:43:08.062 22093-22093 libEGL                  com.mycompany.terrazap               D  loaded /vendor/lib64/egl/libGLES_mali.so
2024-01-22 23:43:08.171 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] onAttachedToEngine
2024-01-22 23:43:08.176 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] onAttachedToActivity
2024-01-22 23:43:08.219 22093-22093 ompany.terrazap         com.mycompany.terrazap               W  Accessing hidden method Landroid/view/accessibility/AccessibilityNodeInfo;->getSourceNodeId()J (unsupported,test-api, reflection, allowed)
2024-01-22 23:43:08.219 22093-22093 ompany.terrazap         com.mycompany.terrazap               W  Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (unsupported, reflection, allowed)
2024-01-22 23:43:08.219 22093-22093 ompany.terrazap         com.mycompany.terrazap               W  Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChildNodeIds:Landroid/util/LongArray; (unsupported, reflection, allowed)
2024-01-22 23:43:08.220 22093-22093 ompany.terrazap         com.mycompany.terrazap               W  Accessing hidden method Landroid/util/LongArray;->get(I)J (unsupported, reflection, allowed)
2024-01-22 23:43:08.232 22093-22188 flutter                 com.mycompany.terrazap               I  The Dart VM service is listening on http://127.0.0.1:35151/TgrbjOIpwrE=/
2024-01-22 23:43:08.247 22093-22093 Compatibil...geReporter com.mycompany.terrazap               D  Compat change id reported: 237531167; UID 10403; state: DISABLED
2024-01-22 23:43:08.316 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.320 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.328 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.339 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.350 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.361 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.372 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.383 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.394 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.405 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.416 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.427 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.438 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.449 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.460 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.472 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.483 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.494 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.505 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.516 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.527 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.538 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.549 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.561 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.571 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.583 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.594 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.605 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.616 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.627 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.638 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.649 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.660 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.672 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.682 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.694 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.705 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.716 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.727 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.738 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.749 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.760 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.771 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.783 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.794 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.805 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.816 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.827 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.838 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.849 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.860 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.871 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.882 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.894 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.904 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.916 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.927 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.938 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.949 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.960 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.971 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.982 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:08.993 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.005 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.015 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.026 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.038 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.048 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.060 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.071 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.082 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.093 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.104 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.115 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.126 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.137 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.149 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.159 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.171 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.182 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.193 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.204 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.215 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.227 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.237 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.249 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.259 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.271 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.282 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.293 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.304 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.315 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.327 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.338 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.348 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.359 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.371 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.382 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.393 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.404 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.415 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.426 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.437 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.448 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.459 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.470 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.482 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.493 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.504 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.515 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.526 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.537 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.548 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.559 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.570 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.581 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.592 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.603 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.616 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.626 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.636 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.648 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.659 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.670 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.681 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.692 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.703 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.714 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.725 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.737 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.748 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.759 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.770 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.781 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.792 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.803 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.814 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.825 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.836 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.847 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.858 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.869 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.881 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.892 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.903 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.914 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.925 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.936 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.947 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.959 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.970 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.980 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:09.992 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.003 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.014 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.025 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.036 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.047 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.058 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.069 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.080 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.091 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.103 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.114 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.125 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.136 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.147 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.158 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.169 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.180 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.191 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.203 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.214 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.224 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.236 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.247 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.258 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.269 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.280 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.291 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.302 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.314 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.325 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.336 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.347 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.358 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.369 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.380 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.391 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.402 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.413 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.424 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.436 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.447 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.459 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.469 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.472 22093-22093 permissions_handler     com.mycompany.terrazap               D  Bluetooth permission missing in manifest
2024-01-22 23:43:10.480 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.491 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.498 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] onMethodCall: flutterHotRestart
2024-01-22 23:43:10.498 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] initializing BluetoothAdapter
2024-01-22 23:43:10.498 22093-22093 Compatibil...geReporter com.mycompany.terrazap               D  Compat change id reported: 263076149; UID 10403; state: DISABLED
2024-01-22 23:43:10.502 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] disconnectAllDevices(flutterHotRestart)
2024-01-22 23:43:10.502 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] connectedPeripherals: 0
2024-01-22 23:43:10.502 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] onMethodCall: getAdapterState
2024-01-22 23:43:10.502 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.513 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.524 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.535 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.546 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.561 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.569 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.580 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.591 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.602 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.613 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.624 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.635 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.646 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.658 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:10.668 22093-22093 VRI[MainActivity]       com.mycompany.terrazap               D  Cancelling draw. cancelDueToPreDrawListener=true cancelDueToSync=false
2024-01-22 23:43:15.802 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] onMethodCall: turnOn
2024-01-22 23:43:16.870 22093-22093 [FBP-Android]           com.mycompany.terrazap               D  [FBP] onMethodCall: startScan
2024-01-22 23:43:16.874 22093-22093 BluetoothAdapter        com.mycompany.terrazap               D  isLeEnabled(): ON
2024-01-22 23:43:16.888 22093-22109 BluetoothLeScanner      com.mycompany.terrazap               D  onScannerRegistered() - status=0 scannerId=5 mScannerId=0
2024-01-22 23:43:28.378 22093-22110 ScanRecord              com.mycompany.terrazap               E  unable to parse scan record: [30, 5, 18, -94, 77, 46, -2, 20, 72, -114, -109, -46, 23, 60, -3, 2, 48, -128, 9, -48, 120, -3, -2, 20, 66, 60, 64, 0, 0, 0, 0]
2024-01-22 23:44:29.657 22093-22104 ompany.terrazap         com.mycompany.terrazap               I  Background concurrent mark compact GC freed 966735(23MB) AllocSpace objects, 0(0B) LOS objects, 88% free, 3114KB/27MB, paused 181us,5.904ms total 55.676ms

-------------------------------------------------------------------------------------------

Logs of bluetoothctl:

[salex@fedora ~]$ bluetoothctl 
Waiting to connect to bluetoothd...[bluetooth]# hci0 new_settings: powered bondable ssp br/edr le secure-conn 
[bluetooth]# Agent registered
[bluetooth]# [CHG] Controller 98:59:7A:A3:55:97 Pairable: yes
scan on
[bluetooth]# SetDiscoveryFilter success
[bluetooth]# Discovery started
[bluetooth]# [CHG] Controller 98:59:7A:A3:55:97 Discovering: yes
[bluetooth]# [NEW] Device 5B:36:72:0B:DB:D6 5B-36-72-0B-DB-D6
[bluetooth]# [NEW] Device E8:EB:1A:CB:56:CA GT_V101788 --WANTED DEVICE
[bluetooth]# [NEW] Device E5:9F:52:36:E9:BE GT_V101787 --WANTED DEVICE
[bluetooth]# [NEW] Device 46:DE:69:AB:EC:BB 46-DE-69-AB-EC-BB
[bluetooth]# [NEW] Device 77:A8:37:0A:99:78 77-A8-37-0A-99-78
[bluetooth]# [NEW] Device 4A:17:E1:13:36:EE 4A-17-E1-13-36-EE
[bluetooth]# [NEW] Device 77:7C:B1:09:3F:0B 77-7C-B1-09-3F-0B
[bluetooth]# [NEW] Device C8:9C:42:A9:6D:79 JBL TUNE770NC-LE
[NEW] Device 07:93:FA:EC:A0:16 07-93-FA-EC-A0-16
[bluetooth]# scan off
[bluetooth]# Discovery stopped
[bluetooth]# [CHG] Device 07:93:FA:EC:A0:16 RSSI is nil
[bluetooth]# [CHG] Device C8:9C:42:A9:6D:79 RSSI is nil
[bluetooth]# [CHG] Device 77:7C:B1:09:3F:0B TxPower is nil
[bluetooth]# [CHG] Device 77:7C:B1:09:3F:0B RSSI is nil
[bluetooth]# [CHG] Device 4A:17:E1:13:36:EE TxPower is nil
[bluetooth]# [CHG] Device 4A:17:E1:13:36:EE RSSI is nil
[bluetooth]# [CHG] Device 77:A8:37:0A:99:78 TxPower is nil
[bluetooth]# [CHG] Device 77:A8:37:0A:99:78 RSSI is nil
chipweinberger commented 7 months ago

I read your issue, but I do not know a reason your iBeacons are not showing.

MrCsabaToth commented 7 months ago

Did the iBeacon show up in the example app's scan? Is iBeacon an Apple Tag? I see a whole bunch of various Apple devices showing up from the neighbors surrounding me, but I cannot tell which one is an Apple Tag and which one is not. Also note that I own Tile and Nut (that uses Nordic Semi) beacons and FBP sees all of them.

spehj commented 7 months ago

First of all, you need to enable location to be able to scan BT beacons, also pass androidUsesFineLocation: trueto the startScanmethod. Make sure you add all required code to the AndroidManifest file (see official docs of FBP).

Here's code that works for me:

// Start scanning
    await FlutterBluePlus.startScan(timeout: const Duration(seconds: 4), androidUsesFineLocation: true);

    _scanSubscription = FlutterBluePlus.scanResults.listen((scanResult) {
      for (var result in scanResult) {
        Map<String, dynamic> iBeaconData = convertAdvertisementDataToIBeaconData(result);
        if (iBeaconData.isNotEmpty) {
         // Do something with your converted data
          }
        }
      }
    });

    // Cancel this subscription when scan is finished
    FlutterBluePlus.cancelWhenScanComplete(_scanSubscription!);

And here is the convertAdvertisementDataToIBeaconDatafunction - I use it to recognize Estimote iBeacon devices:

Map<String, dynamic> convertAdvertisementDataToIBeaconData(ScanResult scanResult) {
    Map<String, dynamic> iBeaconData = {};

    if (scanResult.advertisementData.manufacturerData.containsKey(76) &&
        scanResult.advertisementData.manufacturerData[76]!.length == 23 &&
        scanResult.advertisementData.manufacturerData[76]![0] == 2 &&
        scanResult.advertisementData.manufacturerData[76]![1] == 21) {
      // print(">>>>> iBeacon found: ${scanResult.advertisementData.manufacturerData[76]}");
      List<int>? data = scanResult.advertisementData.manufacturerData[76];
      iBeaconData['remoteId'] = scanResult.device.remoteId.str;
      iBeaconData['type'] = data![0];
      iBeaconData['length'] = data[1];
      iBeaconData['uuid'] = IBeaconModel.convertToUUID(data.sublist(2, 18));
      iBeaconData['major'] = IBeaconModel.convertToInt(data.sublist(18, 20));
      iBeaconData['minor'] = IBeaconModel.convertToInt(data.sublist(20, 22));
      iBeaconData['pwr'] = data[22];
      iBeaconData['rssi'] = scanResult.rssi;
    }

    return iBeaconData;
  }
chipweinberger commented 7 months ago

@spehj thanks.

I've added your info to the README.

salex996 commented 7 months ago

Dear all,

It finally worked with the code @spehj sent,

However, I must say I needed to include few things in the androidManifest that I found in the library flutter_reactive_ble https://github.com/PhilipsHue/flutter_reactive_ble/tree/8d66469df06e814a96eed48174d34525459c62c5

They say something like:

'You need to add the following permissions to your AndroidManifest.xml file:

If you use BLUETOOTH_SCAN to determine location, modify your AndroidManfiest.xml file to include the following entry:

<uses-permission android:name="android.permission.BLUETOOTH_SCAN" tools:remove="android:usesPermissionFlags" tools:targetApi="s" />

If you use location services in your app, remove android:maxSdkVersion="30" from the location permission tags'

And after following this instructions I can see my beacons, :)

Just few more questions to @spehj

how is the class IBeaconModel? How can I access to data in IBeaconModel? And finally, It may be so obvious but how did you declare _scanSubscription? I am facing problems here,

Thank you very much for your support,

chipweinberger commented 7 months ago

@salex996 can you look at the FBP documentation here? https://github.com/boskokg/flutter_blue_plus?tab=readme-ov-file#add-permissions-for-android-with-fine-location

Is it correct?

spehj commented 7 months ago

@chipweinberger FBP documentation is correct and works out of the box.

This part from the docs needs to be pasted to the android/app/src/mainÀndroidManifest.xml:

<!-- Tell Google Play Store that your app uses Bluetooth LE
     Set android:required="true" if bluetooth is necessary -->
    <uses-feature android:name="android.hardware.bluetooth_le" android:required="false" />

    <!-- New Bluetooth permissions in Android 12
    https://developer.android.com/about/versions/12/features/bluetooth-permissions -->
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- legacy for Android 11 or lower -->
    <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />

    <!-- legacy for Android 9 or lower -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" />

@salex996 IBeaconModel is just a simple model to store iBeacon data in organized way. It also has some static methods to calculate beacon distance from power (just approximate number in meters), convert bytes to int and UUID values.

_scanSubscriptionis defined as StreamSubscription<List<ScanResult>?>? _scanSubscription;. You can just assign it to a variable and let the FBP package cancel the subscription once the scan is finished. See my example project below.

I created this simple and unorganized project just to display how iBeacon scanner app can be made with Flutter Blue Plus. Note that this won't work for iOS.

Project: Minimal beacon scanner