Возврат входного потока из дескриптора файла пакета с использованием андроидов DownloadManager

Я пытаюсь загрузить файл с помощью android DownloadManager, получить доступ к файлу и записать его в новое место (в этом примере я загружаю базу данных, которая скомпилирована на стороне сервера, и ее необходимо записать в каталог / database / ).

Я читал, и мне удалось загрузить файл, и активировать BroadcastReceiver, но в этот момент я застрял.

Я вернул файл ParcelFileDecriptor, но у меня возникли проблемы с преобразованием его в поток. Я не могу решить, является ли ParcelFileDecriptor.AutoCloseInputStream красной селерой или нет, но я уверен, что ParcelFileDecriptor имеет относительность к потоку, но я действительно изо всех сил пытаюсь его решить. Любая помощь приветствуется.

Solutions Collecting From Web of "Возврат входного потока из дескриптора файла пакета с использованием андроидов DownloadManager"

Я проработал это примерно через 5 минут после публикации и теперь чувствую себя довольно глупо. В любом случае, предположив, что вы уже начали загрузку и настроили Broadcast Reciver, следующий код выполнит эту работу …

ParcelFileDescriptor file = dMgr.openDownloadedFile(downloadId); File dbFile = getDatabasePath(Roads.DATABASE_NAME); InputStream fileStream = new FileInputStream(file.getFileDescriptor()); OutputStream newDatabase = new FileOutputStream(dbFile); byte[] buffer = new byte[1024]; int length; while((length = fileStream.read(buffer)) > 0) { newDatabase.write(buffer, 0, length); } newDatabase.flush(); fileStream.close(); newDatabase.close(); 

Если вы ищете дополнительную информацию о перезаписи базы данных с вашей собственной проверкой этой ссылки (также где большая часть приведенной выше информации получена):

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/