J'ai mis en place une connexion bluetooth en utilisant le code Google Bluetooth Chat maintenant classique. Cependant, j'ai une question que je n'arrive pas à comprendre.Comment détecter EOF sur le transfert de fichiers Bluetooth Android?
La lecture du flux d'entrée ressemble à ceci:
public void run() {
byte[] buffer = new byte[1024]; // buffer store for the stream
int bytes; // bytes returned from read()
// Keep listening to the InputStream until an exception occurs
while (true) {
try {
// Read from the InputStream
bytes = mmInStream.read(buffer);
// Send the obtained bytes to the UI Activity
mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer)
.sendToTarget();
} catch (IOException e) {
break;
}
}
}
Maintenant, c'est très bien si je ne faisais que l'impression des personnages que je recevais comme dans l'exemple d'origine. Cependant, supposons que je veuille transférer un fichier image. Je ne connais pas la taille du fichier, donc je ne peux pas compter les octets reçus ou quelque chose comme ça. Dans mes tests, il ne semble pas que je reçoive un "-1" du flux d'entrée, ce qui semble être la "norme" pour la lecture des flux d'entrée. Alors, comment puis-je savoir que j'ai atteint la fin du fichier qui a été envoyé?
Nous vous remercions de votre aide et de votre temps.
Je pensais que cela pourrait être le cas, mais je voulais voir s'il y avait un moyen plus simple que je méconnais. Mais vous avez confirmé ce que je dois faire ... Merci! –