2011-01-20 7 views
3

DownloadManager 클래스의 공용 API를 사용하고 있는데, 외부 저장 장치 인 sdcard에 파일을 다운로드 할 수 있습니다. 그러나/cache 파티션과 같은 다른 위치로 파일을 다운로드하려고하면 "대상이 외부 저장소에 있어야합니다"라는 보안 예외가 발생합니다.DownloadManager : 캐시 파티션에 파일을 다운로드하십시오.

누구든지이 제한을 무시하고 다운로드 한 파일을/cache 파티션에 쓰는 방법을 알고 있습니까?

고마워요.

답변

1

실제로 파일을/cache 파티션에 다운로드하는 방법을 찾았습니다. DownloadManager 클래스에는 api setDestinationUri()가 있으며,이 함수를 "null"매개 변수로 호출하면 안드로이드가 파일을/cache 파티션에 다운로드합니다. 게다가, 파라미터가 null가 아닌 경우, uri는 "/ mnt/sdcard/..."로 시작하지 않으면 안됩니다. 그렇지 않으면 예외가 발생합니다. 이 시스템 응용 프로그램을 개발하는 경우

+4

사용하지 마십시오을/mnt/sdcard에 - Environment.getExternalStorageDirectory()를 대신 호출하십시오./mnt/sdcard는 보장되지 않습니다. –

+2

그는 "/ mnt/sdcard"를 사용하고 있다고 말하지 않았습니다. – tasomaniac

+0

이 솔루션은 작동하지 않습니다. – madawa

3

, setDestinationToSystemCache()라는 이름의 DownloadManager.Request의 숨겨진 기능이

는 이러한 권한이 필요합니다

android.permission.ACCESS_DOWNLOAD_MANAGER 
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED" 
android.permission.ACCESS_CACHE_FILESYSTEM 
관련 문제