다운로드 매니저 (DownloadManager) 관련 옵션
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
private long enqueue; // 두개는 onCreate 상단에
private DownloadManager dm;
String ready_filename = "test.mp3"
dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http://sysdocu.tistory.com/" + load_ID + "/" + ready_filename));
request.setTitle(ready_filename); // 다운로드 제목
request.setDescription("다운로드 중.."); // 다운로드 설명
request.setNotificationVisibility(1); // 상단바에 완료 결과 놔둠. 0 은 안뜸
==========================================
경우에 맞게 아래 내용 추가
1. 어플리케이션 설치 디렉토리 내부에 저장할 경우 (예 : /Android/data/com.tistory.sysdocu/files/Download/)
request.setDestinationInExternalFilesDir(WebViewActivity.this, Environment.DIRECTORY_DOWNLOADS, ready_filename);
2. 공용 다운로드 디렉토리에 저장할 경우 (/storage/emulated/0/Download/)
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, ready_filename);
* 공용 다운로드 디렉토리에 저장할 경우 퍼미션을 획득해야 하므로 아래 코드를 추가로 삽입합니다.
WebViewActivity.java 에서 (onCreate 내부에 작성)
// 공용 디렉토리에 파일을 저장하기 위한 선작업
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
int PERMISSION_REQUEST_CODE = 1;
if (ContextCompat.checkSelfPermission(WebViewActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(WebViewActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
} else {
ActivityCompat.requestPermissions(WebViewActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
PERMISSION_REQUEST_CODE);
}
}
}
'프로그래밍 > Android (Java)' 카테고리의 다른 글
인트로 슬라이드 화면 구성하기 (0) | 2019.04.19 |
---|---|
FCM 사용하기 (2019-04-17) - 새버전 (0) | 2019.04.17 |
버튼 이벤트 강제 발생 시키기 (0) | 2019.01.26 |
몇 초 멈추게 하기 (0) | 2018.12.27 |
사운드 SoundPool 예제 (0) | 2018.12.24 |