title: Why is it only returning the first characteristic for BLE service?
body: <p>I have a scan for peripherals going for 60 seconds, in which I take the scanResult and put them in a listView adapter. Each item in listView has a button, onButtonClick, I am trying to read a list of characteristics from a service inside the adapter.</p>
  <pre><code>      button1.Click +=  (object sender, EventArgs e) =&gt;
                 {
  
                     string sensorId = (string)((Button)sender).Tag;
                     int index = Sensors.FindIndex(x =&gt; x.SensorId == sensorId);
                     Sensor currentSensor = Sensors[index];
  
                     if (currentSensor.SensorId != null)
                     {
                         BluetoothManager manager = (BluetoothManager)context.GetSystemService(Context.BluetoothService);
                         BluetoothAdapter adapter = manager.Adapter;
                         BluetoothDevice device = adapter.GetRemoteDevice(currentSensor.SensorId);
  
                         gattCallback.ServicesDiscoveredEvent += GattCallback_ServicesDiscoveredEventAsync;
                         gattCallback.CharacteristicReadEvent += GattCallback_CharacteristicReadEvent;
      
                     }
                  });
  
  
     private void GattCallback_ServicesDiscoveredEventAsync(BluetoothGatt gatt)
          {
              service = gatt.GetService(Java.Util.UUID.FromString(&quot;0000180a-0000-1000-8000-00805f9b34fb&quot;));
              foreach (var c in service.Characteristics)
              {
                  gatt.ReadCharacteristic(c);
              }
                                 
          }
  
  
  
    private void GattCallback_CharacteristicReadEvent(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, GattStatus status)
          {
              switch (status)
                  {
                      case GattStatus.ConnectionCongested:
                          break;
                      case GattStatus.Failure:
                          break;
                      case GattStatus.InsufficientAuthentication:
                          break;
                      case GattStatus.InsufficientEncryption:
                          break;
                      case GattStatus.InvalidAttributeLength:
                          break;
                      case GattStatus.InvalidOffset:
                          break;
                      case GattStatus.ReadNotPermitted:
                          break;
                      case GattStatus.RequestNotSupported:
                          break;
                      case GattStatus.Success:
                      var val = BitConverter.ToString(characteristic.GetValue()).Replace(&quot;-&quot;, &quot;&quot;);
                      Console.WriteLine(&quot;CHAR VAL : &quot; + val);
                      break;
                      case GattStatus.WriteNotPermitted:
                          break;
                      default:
                          break;
                  }
             
          }
  </code></pre>
  <p>With the following code above, I am only seeing the result of the first characteristic in the list. What am I doing wrong?</p>