I use AsyncStreams. And file transfer (2-4 mb) from PC to Phone.
My way is.
PC:
1-Convert byte data >> hex data
2-Send to phone (max length =1024)
Phone
1- Recive data
2- convert hex to byte
3- write+add in file
Only problem AsyncStreams cant recive byte data. I send to pfoen from byte data (for examplae 600byte). Phone recive (415byte) . bytheway I convert to byte to hex, and after send it.