I'm not completely sure if this is a bug or a limitation with the current BLE version implementation.
When using an app like CySmart to read the raw BLE characteristic data I can turn on notification and get data updates larger than 20 bytes from my BLE device so I know my phone supports notification data larger than 20 bytes.
When connecting to my BLE device using B4A and the BLE2 library and I go through the process of discovering all of the services and characteristics and read their current data I can read more than 20 bytes from the characteristic but when the DataAvailable function is called during a notification event and it tries to read the data it only reads the first 20 bytes, the rest of the bytes get truncated.
When using an app like CySmart to read the raw BLE characteristic data I can turn on notification and get data updates larger than 20 bytes from my BLE device so I know my phone supports notification data larger than 20 bytes.
When connecting to my BLE device using B4A and the BLE2 library and I go through the process of discovering all of the services and characteristics and read their current data I can read more than 20 bytes from the characteristic but when the DataAvailable function is called during a notification event and it tries to read the data it only reads the first 20 bytes, the rest of the bytes get truncated.