2017-02-09 5 views
0

DownloadManager를 사용하여 base64 이미지를 다운로드하는 방법은 무엇입니까? 내가 옆에서 내 사용자의 브라우저에서로드 이미지가 필요합니다 DownloadManager를 사용하여 base64로 이미지를 다운로드하는 방법에

예를 들어

는 (I 이미지가 바이트 다운로드 (변환 base64로 후 응용 프로그램 다운로드에 표시하고) 파일에 저장하려면, 반드시 의미) 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

소스 코드에서 원격 URL을 넣지 않으면이 클래스 (요청) 예외 발생 – 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 (scheme == null || (! scheme.equals ("http") &&! scheme.equals ("https"))) – mlevytskiy