3

android에서 DownloadManager 클래스를 사용하여 서버에서 데이터를 다운로드하고 있습니다. 데이터는 외부 메모리에 저장됩니다. 하지만 내부 메모리에 저장하고 싶습니다. 나는 나의 연구를했고, 내가 발견 한 것은이 link에서 온 것이다.Android : Cannnot은 DownloadManager를 사용하여 서버에서 다운로드 한 데이터를 내부 메모리에 저장합니다.

public static final String PROVIDER_NAME = "com.provider.Downloads"; 
public static final Uri CONTENT_URI = Uri.parse("content://"+ PROVIDER_NAME + "/downloads") 

DownloadManager.Request req = new DownloadManager.Request(Uri.parse(LINK)); 
req.setDestinationUri(CONTENT_URI); 

그것은 didnt 한 일, 그것은 나에게 오류를 준 : java.lang.IllegalArgumentException: Not a file URI: content://com.provider.Downloads/downloads 나는 cyngus의 두 번째 솔루션을 시도했다. 내가 뭘 잘못하고 있니? 그것이 가능한 것이 얼마나

Set the local destination for the downloaded file. Must be a file URI to a path on external storage, and the calling application must have the WRITE_EXTERNAL_STORAGE permission.

내가 볼 수 없습니다 :

답변

6

doc for DownloadManager.Request 명확하게 당신이 setDestination* 방법의 설정 대상이 WRITE_EXTERNAL_STORAGE 권한이 있어야합니다 귀하의 응용 프로그램 외부 스토리지에와 있음을해야한다는 언급 여기에 내부 저장소의 경로를 제공합니다.

+0

mmmm이 링크에 따라 http://stackoverflow.com/questions/6494627/download-to-internal-memory-posable 다운로드 관리자가 어떻게 콘텐츠 제공 업체에 쓸 수 있습니까? –

+0

그 중 하나는 작동하지 않을 것이라고 생각합니다. 'DownloadManager.Request'는'ContentProvider'가 아니라 _file paths_와 함께 작동합니다. 'DownloadManager'의 소스 코드를 살펴보면 궁극적으로 setDestination *에서 설정 한 경로가 파일 경로로 취급된다는 것을 알 수 있습니다. – curioustechizen

+0

mm 괜찮 았어, 고마워! 그래서 데이터를 외부 메모리에 저장하거나 DownlaodManager가 아닌 다른 클래스를 사용해야합니다. –

관련 문제