2015-01-19 2 views
1

안드로이드의 외부 USB 장치에서 파일을 복사하거나 이동하는 것은 매우 어렵습니다. 이것을하기위한 상위 수준의 수업이 없습니다.뿌리깊은 안드로이드 장치의 외부 USB 저장소에있는 파일과 디렉터리에 액세스하고 조작하십시오.

내 응용 프로그램을하는 것이 루팅 된 장치에서만 작동한다고 생각합니다. 나는 이것에 대해 운영 체제 명령을 사용할 수 있기 때문에 루팅 된 안드로이드 장치에서 USB 장치로 파일을 복사하거나 USB 장치에서 파일을 복사하는 것이 가능하다는 점을 읽었습니다.

그러나 실제로이 작업을 수행하는 방법과 모든 루팅 된 장치에서 작동하는지는 알 수 없습니다.

내가 필요한 것은 사용자가 장치의 파일을 탐색 할 수 있도록 UI에서 허용하고 원하는 파일을 선택하여 파일을 Android 장치 (및 뒤로)에 복사 할 수있게하는 것입니다.

+0

가능한 복제 [안드로이드 킷캣을위한 USB 저장 장치를 감지 (4.4)] (http://stackoverflow.com/questions/36208297/android-detect : 여기에 파일을 복사하는 데 사용할 수있는 코드 조각이다 -usb-storage-for-kitkat-4-4). 6.0과 6.0/6.0 이전 버전의 솔루션을 게시했습니다. –

답변

0

외부 USB 저장소는 /storage/에 있습니다. A-F에서 USB 드라이브가 있습니다. 파일 선택에 관해서는 AndroidFileBrowser을 시도해보십시오.

public void copy(File src, File dst) throws IOException 
{ 
InputStream in = new FileInputStream(src); 
OutputStream out = new FileOutputStream(dst); 

// Transfer bytes from in to out 
byte[] buf = new byte[1024]; 
int len; 
while ((len = in.read(buf)) > 0) { 
    out.write(buf, 0, len); 
} 
in.close(); 
out.close(); 
} 
+0

답변 해 주셔서 감사합니다. 실제로 가장 효율적인 방법입니까? 두 개의 FileInputStream을 사용하고 있습니까? 뿌리가 됨으로써 더 많은 일을 할 수 없습니까? 다시 한번 감사드립니다. –

+0

왜 안 되니? 루트 권한을 부여, 당신에게 슈퍼 파워를주지 않습니다. 게다가, 그것은 간단한 방법입니다. –

관련 문제