2017-02-09 13 views
0

Как скачать base64 изображение с помощью DownloadManager (я имею в виду образ должен показать в прикладных загрузках после загрузки (конвертировать base64 в байты и сохранить в файле))Как загрузить изображение base64 с помощью DownloadManager?

Например: мне нужно загрузить изображение из моего пользовательского браузера от следующего html "<img src=\"data:image/jpeg;base64,someBase64String" />". И загрузите его точно так же (для пользовательского мнения) как обычный URL изображения. Для нормального изображения url я использую DownloadManager:

DownloadManager.Request request = new DownloadManager.Request(source); 
     request.allowScanningByMediaScanner(); 
     request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
     request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); 
     request.setTitle(fileName); 
     request.setDescription(fileName); 
     DownloadManager dm = (DownloadManager) App.getInstance().getSystemService(Context.DOWNLOAD_SERVICE); 
     dm.enqueue(request); 

ответ

0
DownloadManager dm = (DownloadManager) App.getInstance().getSystemService(Context.DOWNLOAD_SERVICE); 
     String[] fileNameAndExt = getFileNameAndExt(file.getName()); 
     dm.addCompletedDownload(fileNameAndExt[0], file.getName(), true, "image/" + fileNameAndExt[1], file.getPath(), file.length(), true); 

необходимо также разрешение в манифесте:

<uses-permission android:name="android.permission.INTERNET" /> 

Это странно, но с другой стороны он не работал.

1

Попробуйте загрузить это изображение. uRl - это URL-адрес изображения.

public void downloadFile(String uRl) { 
     File direct = new File(Environment.getExternalStorageDirectory() 
       + "/MyBox"); 

     if (!direct.exists()) { 
      direct.mkdirs(); 
     } 

     DownloadManager mgr = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE); 

     Uri downloadUri = Uri.parse(uRl); 
     DownloadManager.Request request = new DownloadManager.Request(
       downloadUri); 

     request.setAllowedNetworkTypes(
       DownloadManager.Request.NETWORK_WIFI 
         | DownloadManager.Request.NETWORK_MOBILE) 
       .setAllowedOverRoaming(false).setTitle("Demo") 
       .setDescription("Something useful. No, really.") 
       .setDestinationInExternalPublicDir("/MyFiles", "fileName.jpg"); 

     mgr.enqueue(request); 

    } 
+0

в исходном коде этого класса (запрос) исключение исключения, если мы помещаем не удаленный uri – mlevytskiy

+0

http://grepcode.com/file/repo1.maven.org/maven2/org.robolectric/android-all/4.4_r1-robolectric -0/android/app/DownloadManager.java # DownloadManager.Request – mlevytskiy

+0

if (схема == null || (! Schem.equals ("http") &&! Schem.equals ("https"))) – mlevytskiy

 Смежные вопросы

  • Нет связанных вопросов^_^