2012-10-16 14 views
7

Sviluppo un'applicazione come Internet Download Manager per Android.Android: Scarica un singolo file in molte parti

Voglio sapere come scaricare diverse parti del file in Android come è fatto in IDM.

Come posso ottenere i metadati del file prima del download e come scaricare i file nelle parti?

Non vi è alcun nome utente-password o alcuna restrizione nel download ... solo download semplice da parte di url.

+0

Attraverso quale tipo di protocollo? –

+0

http, https o ftp –

risposta

6

Supponendo che stai utilizzando HTTP per il download, ti consigliamo di utilizzare il verbo http HEAD e l'intestazione http RANGE http.

HEAD fornisce il file (se disponibile), quindi RANGE consente di scaricare un intervallo di byte.

Una volta ottenuta la dimensione del file, dividerla in blocchi di dimensioni approssimativamente uguali e generare il thread di download per ogni blocco. Al termine, scrivere i blocchi di file nell'ordine corretto.

EDIT:

Se non sai come usare l'intestazione RANGE, ecco un altro SO risposta che spiega come: https://stackoverflow.com/a/6323043/1355166

+0

c'è qualche funzione in Android per implementare questo ?? –

+0

Sì, ho modificato la risposta per includere un collegamento ad un'altra risposta. – gcochard

+2

"Range" è un'intestazione in realtà – irreputable