티스토리 뷰
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