title: Gatt 133 exception on read characteristic and followed by gatt 22
body: <p><strong>Problem:</strong></p>
  
  <ul>
  <li><p>I am getting a <strong><em>GATT exception 133</em></strong> when trying to read the characteristics.</p></li>
  <li><p>I made a delay to read but unfortunately it doesn't works followed by the <strong><em>GATT 22 error</em></strong>. </p></li>
  <li><p>It happens on few devices but i don't know how to solve this problem. </p></li>
  </ul>
  
  <p><strong>Code:</strong></p>
  
  <pre><code>public void performRead() {
      printMessage("\nperform READ started...");
      UUID serviceuid = UUID.fromString(UUID_SERVICE);
      if (BDA.getmBluetoothGatt() == null)
          return;
  
      BluetoothGattService service = BDA.getmBluetoothGatt().getService(
              serviceuid);
      UUID characteristicuid = UUID.fromString(UUID_CHARACTERISTIC_STATUS);
      BluetoothGattCharacteristic characteristic = null;
      if (service != null) {
          characteristic = service.getCharacteristic(characteristicuid);
      }
      if (characteristic != null) {
          boolean isSuccess = BDA.getmBluetoothGatt().readCharacteristic(characteristic);
          printMessage("isSuccess fire = " + isSuccess);
      }
  }
  </code></pre>
  
  <p><strong>Callback:</strong></p>
  
  <pre><code>  @Override
      public void onCharacteristicRead(BluetoothGatt gatt,
                                       BluetoothGattCharacteristic characteristic, int status) {
          super.onCharacteristicRead(gatt, characteristic, status);
          String intentAction = "";
  
          if (status == BluetoothGatt.GATT_SUCCESS) {
              intentAction = MyUtils.ACTION_READ_SUCCESS;
              broadcastNotifyUpdate(characteristic,intentAction);
          } else {//**status - 133
              intentAction = MyUtils.ACTION_GATT_CHARACTERISTIC_ERROR;
              broadcastUpdate(intentAction,""+status);
          }
      }
  </code></pre>