Ho fatto qualche prova usando il codice della bluetooth chat, ed effettivamente, cercando di ricostruire l'immagine dall'array di byte, l'immagine è nulla.
Ho provato a ricavarla direttamente con il metodo che prende l'input stream come parametro - BitmapFactory.decodeStream(inputStream) - e l'immagine viene "ricostruita" correttamente.
Cercando di capire perché il primo metodo non funzionasse, ho fatto un po' di test loggando l'array prima dell'invio e dopo la ricezione, e ho scoperto che viene ricevuto a colpi. L'array della mia immagine era 1504 byte e mi veniva passato prima un pezzo di 1008, poi il restante pezzo di 496 byte. Quindi ad ogni invio la BitmapFactory veniva richiamata due volte, una per ogni pezzo inviato. Pensavo fosse un problema del mio codice, quindi ho cercato qualche esempio, trovando un paio di post in cui parlavano proprio della ricezione a "batches" dell'array. Dicoono che le dimensioni di ogni pezzo di array cambino in base alla dimensione del buffer in ricezione, ma a me rimane sempre fisso a 1008.
Qui suggeriscono di ricomporlo, ma secondo me conviene usare direttamente il metodo che ricompone l'immagine direttamente dall'inputstream.
