В зависимости от входного потока (если он имеет базовый дескриптор файла), вы можете использовать классы селектора NIO для ожидания готовности дескриптора файла к чтению.
К сожалению, потоки Bluetooth, предоставляемые в Android, не обеспечивают доступ к базовому файловому дескриптору, и метод available
не работает надежно с одного устройства Android на другое, поэтому в настоящее время невозможно выполнить то, что вы хотите, из кода Java .
РЕДАКТИРОВАТЬ: я должен отметить, что метод InputStream.available
работает на некоторых устройствах Android (по моему опыту, устройства Nexus 1 и более ранние версии HTC, которые используют реализацию Android-порта Google от Google, подходят; Samsung и более поздние устройства HTC, использующие поставщика -поддерживаемые реализации порта Bluetooth печально терпят неудачу), поэтому, если ваше приложение будет развернуто на известном подмножестве устройств, вы могли бы преуспеть с этой опцией.