code: private void refreshDeviceCache(BluetoothGatt gatt) {
          try {
              BluetoothGatt localBluetoothGatt = gatt;
              Method localMethod = localBluetoothGatt.getClass().getMethod("refresh", new Class[0]);
              if (localMethod != null) {
                  localMethod.invoke(localBluetoothGatt, new Object[0]);
              } else {
                  Log.e(TAG, "Couldn't find local method: refresh");
              }
          }
          catch (Exception localException) {
              Log.e(TAG, "An exception occurred while refreshing device");
          }
      }
docs: Attempt to invalidate Androids internal GATT table cache
  
  http://stackoverflow.com/a/22709467/5640435
  
  @param gatt BluetoothGatt object