Вместо того, чтобы использовать браузер или (не существует в вашем случае) менеджер загрузок, почему бы не написать свой собственный код загрузки. Это побочный эффект от использования гораздо меньших системных издержек, так как вы не запускаете отдельное приложение для загрузки.
Вот пример, который должен быть близок к тому, что вы хотите. f
- это объект File, инициализированный по пути на SD-карте. buffer_size
и bytes
- поля класса.
private static final int buffer_size=1024;
private static final byte[] bytes=new byte[buffer_size];
InputStream is = null;
FileOutputStream os = null;
try {
is = new URL(url).openStream();
os = new FileOutputStream(f);
for (;;) {
int count = is.read( bytes, 0, buffer_size );
if ( count == -1 ) break;
os.write( bytes, 0, count );
}
}
catch (Exception e) {
Log.e( TAG, "error : " + e.getLocalizedMessage(), e );
}
finally {
try { is.close(); } catch ( Exception ignore ) { ; }
try { os.close(); } catch ( Exception ignore ) { ; }
}