title: Should one create a bond with a Bluetooth LE device
body: <p>For a Bluetooth project with Xamarin (Android API 21 and up)  I would like to know if it is common to create a bond with a Bluetooth device. The current requirements are:</p>
  
  <ul>
  <li>The Bluetooth device is used frequently, but not continuously.</li>
  <li>Reconnecting should happen as fast as possible</li>
  <li>Bluetooth address changes randomly when the device is powered down</li>
  <li>The device's name is unknown, null or random</li>
  <li>The connection is encrypted </li>
  <li>The connection uses an overlying API that requires a Bluetooth Device as parameter for connection.</li>
  </ul>
  
  <p><strong>Should one create a bond with this device for "better" recognition (as some sort of cache) or reconnect to the device "from scratch".
  What is common in this scenario?</strong> SO it is not a question of "Can I bond", but is it necessary to bond, or even better: what is a coorect and working, reliable scenario.</p>
  
  <p>Currently I use code like this (result.Device.Name is for dev purposes):</p>
  
  <pre><code>  public override void OnScanResult([GeneratedEnum] ScanCallbackType callbackType, ScanResult result)
      {
  
          if (result.Device.Name == "��" &amp;&amp;
  
              !_discovered &amp;&amp;
            result.ScanRecord != null &amp;&amp;
            result.ScanRecord.ServiceUuids != null &amp;&amp;
            result.ScanRecord.ServiceUuids.Any(x =&gt; x.Uuid.ToString().ToUpper() == uuid))
          {
              lock (_locker)
              {
                  _discovered = true;
                  _deviceList.Add(result.Device);
                  BluetoothDiscoverySucces?.Invoke(result.Device);
              }
          }
      }
  </code></pre>