티스토리 뷰
Dropbox API 등록하기 참고자료
http://thdev.net/40
Dropbox API 사용 Upload
http://thdev.net/21
Dropbox API 사용 Metadata
http://thdev.net/23
이번에는 Dropbox 파일 다운로드를 위한 api를 사용해보겠습니다.
- DOWNLOAD
Android java code
-- 다운로드를 호출 하기 위한 소스코드(dropbox API 아님)
void download() { new Thread() { public void run() { //다운로드를 위한 실제 파일 경로를 만들게 됩니다. //다운 받을 파일이 b.txt라면 로컬에 가상의 파일을 미리 생성해야 합니다. //(생성하지 안으면 파일 인아우풋 스트림시에도 다운로드가 진행 되지 않더군요.) File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "/download/b.txt"); try { //downloadDropboxFile 함수를 호출 합니다. //api 상의 코드가 이상해서 실제 api를 바로 호출 할 순 없습니다. 그래서 별도의 함수를 생성하게 되었습니다. //코드상의 함수를 생성하고 실제 api를 호출 하게 됩니다. downloadDropboxFile("dropbox", "/test/b.txt", file); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); }
--api를 호출 하기 위한 버퍼스트림 함수를 생성합니다. 여기서 실제 api를 호출 하게 됩니다.
public boolean downloadDropboxFile(String root, String dbPath, File localFile) throws IOException { Log.d("TA", "down : "+dbPath); BufferedInputStream br = null; BufferedOutputStream bw = null; try { //필요할 경우 사용합니다. /*if(!localFile.exists()) { localFile.createNewFile(); } */ Log.d("TA", localFile.toString()); //FileDownload 클래스를 생성합니다.(dropbox api에 정의되어 있는 FileDownload 클래스입니다.) //getFileStream(dropbox또는 sandbox를 사용합니다, 다운 받을 dropbox상의 경로를 작성합니다., 다운 받아 저장할 경로이지만 null을 주면 됩니다.) FileDownload fd = api.getFileStream(root, dbPath, null); //버퍼드 Input 스트림을 생성합니다. br = new BufferedInputStream(fd.is); //버퍼드 output 스트림을 생성합니다. 다운 받을 실제 경로를 fileoutput스트림으로 호출 합니다. bw = new BufferedOutputStream(new FileOutputStream(localFile)); byte[] buffer = new byte[4096]; int read; while (true) { read = br.read(buffer); if (read <= 0) { break; } bw.write(buffer, 0, read); } //sd카드를 리스캔합니다. sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE)); } finally { //in finally block: if (bw != null) { bw.close(); } if (br != null) { br.close(); } } return true; }
이상으로 다운로드를 위한 코드를 작성했습니다.
실제 api를 사용해서 다시 테스트 해봐야 알겠지만 여기선 파일 다운을 위해서 BufferedInputStream 과 OutputStream을 새롭게 생성하게 되었습니다.
api 상에 정의는 되어 있지만 실제로 돌아가지 않았던걸로 알고 있습니다.
추후에 API를 다시 확인 하여 사용 가능한지 체크해보겠습니다.!!^^;
'Android Develop' 카테고리의 다른 글
Android 구글 날씨 파싱(XmlPullParser 사용) (0) | 2011.10.06 |
---|---|
Android Dropbox API 사용법(metadata) (2) | 2011.09.02 |
Android Dropbox API 사용법(UPLoad) (0) | 2011.09.01 |
andorid Twitter oAuth 로그인 처리 소스코드 (0) | 2011.08.04 |
Twitter API 받기 (0) | 2011.07.24 |
댓글
Blog is powered by
Tistory / Designed by
Tistory