Notice
Recent Posts
Recent Comments
Link
투케이2K
90. (TWOK/ERROR) [Android] DownloadManager 다운로드 매니저 사용해 파일 다운 시 파일 명칭 문제로 인해 에러 발생 이슈 본문
투케이2K 에러관리
90. (TWOK/ERROR) [Android] DownloadManager 다운로드 매니저 사용해 파일 다운 시 파일 명칭 문제로 인해 에러 발생 이슈
투케이2K 2022. 8. 12. 13:39[환경 설정 및 설명]
프로그램 : AndroidStudio
설 명 : DownloadManager 다운로드 매니저 사용해 파일 다운 시 파일 명칭 문제로 인해 에러 발생 이슈
[에러 원인]
1. 파일 명칭(test.txt)이 깨지 거나, 한글인 경우 인코딩 되지 않거나, 알 수 없는 데이터로 인해 에러가(exception)가 발생 하는 이유
[해결 방법]
1. 에러 (exception) 가 발생한 경우는 현재 날짜 및 시간 정보로 파일 명칭 포맷 후 >> 다운로드 수행 실시
// TODO [DownloadManager 사용해 파일 다운로드 수행 실시]
DownloadManager manager = (DownloadManager) mContext.getSystemService(Activity.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(url.trim()); // [파일 다운로드 주소 : 확장자명 포함되어야함]
DownloadManager.Request request = new DownloadManager.Request(uri); // [다운로드 매니저 객체 생성]
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); // [앱 상단에 다운로드 표시]
request.setDescription("Download ... "); // [다운로드 중 표시되는 내용]
request.setNotificationVisibility(1); // [앱 상단에 다운로드 상태 표시]
try {
//*
request.setTitle(fileName); // [다운로드 제목 표시]
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); // [다운로드 폴더 지정]
manager.enqueue(request); // [다운로드 수행]
// */
return;
}
catch (Exception e){
//e.printStackTrace();
// TODO [파일 명칭 관련 에러가 발생한 경우 >> 현재 날짜 및 시간으로 포맷 수행 실시]
try {
// [현재 날짜 및 시간 확인 실시]
long time = System.currentTimeMillis();
SimpleDateFormat dayTime = new SimpleDateFormat("yyyyMMddkkmmss");
String str = dayTime.format(new Date(time));
// [현재 날짜 및 시간 데이터 + 확장자명 결합 실시]
String newFileName = str.trim() + "." + extension.trim();
//*
request.setTitle(newFileName); // [다운로드 제목 표시]
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, newFileName); // [다운로드 폴더 지정]
manager.enqueue(request); // [다운로드 수행]
// */
return;
}
catch (Exception ex){
ex.printStackTrace();
return;
}
}
반응형
'투케이2K 에러관리' 카테고리의 다른 글
Comments