public override void DidRangeBeacons(ESTBeaconManager manager, NSArray[] beacons, ESTBeaconRegion region) { ESTBeacon beacon = (ESTBeacon)beacons.GetValue (0); if (beacon.Ibeacon.Proximity == CLProximity.Near) { label.Text = "It's Near"; imageView.Image = UIImage.FromFile ("near_image.PNG"); } if (beacon.Ibeacon.Proximity == CLProximity.Far) { label.Text = "It's Far"; imageView.Image = UIImage.FromFile ("far_image.PNG"); } if (beacon.Ibeacon.Proximity == CLProximity.Immediate) { label.Text = "It's Immediate"; imageView.Image = UIImage.FromFile ("immediate_image.PNG"); } if (beacon.Ibeacon.Proximity == CLProximity.Unknown) { label.Text = "It's Unknown"; imageView.Image = UIImage.FromFile ("unknown_image.PNG"); } }
public override void DidRangeBeacons(ESTBeaconManager manager, NSArray[] beacons, ESTBeaconRegion region) { if(beacons.Length > 0) { if(selectedBeacon == null) { // initialy pick closest beacon selectedBeacon = (ESTBeacon)beacons.GetValue(0); } else { for(int i=0;i<beacons.Length;i++) { ESTBeacon cBeacon = (ESTBeacon)beacons.GetValue(i); // update beacon if same as selected initially if(selectedBeacon.Ibeacon.Major.UInt16Value == cBeacon.Ibeacon.Major.UInt16Value && selectedBeacon.Ibeacon.Minor.UInt16Value == cBeacon.Ibeacon.Minor.UInt16Value) { selectedBeacon = cBeacon; } } } // beacon array is sorted based on distance // closest beacon is the first one string labelTextStr = String.Format("Beacon: {0} \nMajor: {1}, Minor: {2}\nRSSI: {3}\nRegion: ", selectedBeacon.Ibeacon.ProximityUuid.AsString(), selectedBeacon.Ibeacon.Major.UInt16Value, selectedBeacon.Ibeacon.Minor.UInt16Value, selectedBeacon.Ibeacon.Rssi ); // calculate and set new y position switch(selectedBeacon.Ibeacon.Proximity) { case CLProximity.Unknown: labelTextStr += "Unknown"; break; case CLProximity.Immediate: labelTextStr += "Immediate"; break; case CLProximity.Near: labelTextStr += "Near"; break; case CLProximity.Far: labelTextStr += "Far"; break; } NSString labelText = new NSString(labelTextStr); _distanceLabel.Text = labelText; } }