2012-07-02 5 views
4

USB 케이블로 안드로이드 장치와 PC를 연결했습니다. 내 내부 SD 카드 위치 경로는 /mnt/sdcard입니다. 하지만 내 외부 USB 장치 경로는 /mnt/userdata1입니다. 이 코드를 사용하여 내부 SD 카드 경로 Environment.getExternalStorageDirectory() 만 찾으려고합니다. 이 코드를 사용하여 내부 SD 카드 경로에서만 액세스합니다. 외부 USB 경로에 액세스하는 방법. 이 예에서안드로이드에서 USB 경로에 액세스하는 방법?

예를 들어 스크린 샷이 여기에 들어
... Example

Internal Memory, External SD cardUSB Storage이 포함되어 있습니다. 이 경로 (Internal Memory, External SD cardUSB Storage)를 프로그래밍 방식으로 찾는 방법 이 코드 Environment.getExternalStorageDirectory()에서 파일은 모두 Internal Memory 파일에서만 볼 수 있습니다. 그래서 다른 사람의 경로 (External SD cardUSB Storage)에 액세스

코드로 나를 안내 해주십시오. 감사합니다 ...

+0

그래서 당신이 가진 문제는 정확히 무엇입니까? – Janusz

+0

내부 SD 카드 경로를 알고 있습니다. 그러나 외부 usb 장치 경로를 찾는 방법. 나는 모른다. –

+0

외부 저장소로 작업 할 때 기억해야 할 사항 중 하나는 사용 권한을 포함해야합니다. 외부 저장소에 쓰기 위해서는'가 필요합니다. –

답변

0

내가 올바르게 이해한다면, "외부"USB 경로는 실제로 컴퓨터의 SD 카드에 대한 마운트 지점입니다. SD 카드의 레이블은 userdata1 일 가능성이 큽니다. 따라서 컴퓨터에 마운트하면 마운트 포인트가 /mnt/userdata1이됩니다. 그러나 이것은 꼭 필요한 것은 아니며 모든 마운트 지점이 될 수 있습니다. 실제로 다른 컴퓨터에 연결하면 쉽게 다른 탑재 지점이 될 수 있습니다.

이 경로는 컴퓨터 운영 체제에 의해 결정되기 때문에 컴퓨터에서이 경로를 찾아야합니다.이 설정은 휴대 전화를 PC에 연결할 때마다 다를 수 있으므로 다음을 수행해야합니다. 그 때마다).

귀하의 질문과 경로 구조 (/mnt/userdata1)에서 나는 당신이 리눅스 또는 다른 유닉스 버전을 사용하고 있다고 생각합니다. 따라서 PC에 mount을 실행하여 탑재 된 장치 목록을 볼 수 있습니다. -이 SD 카드 내 연결된 안드로이드 폰이 컴퓨터에 장착

$ mount 
/dev/disk0s2 on/(hfs, local, journaled) 
devfs on /dev (devfs, local, nobrowse) 
map -hosts on /net (autofs, nosuid, automounted, nobrowse) 
map auto_home on /home (autofs, automounted, nobrowse) 
/dev/disk1s1 on /Volumes/ALEKS540 (msdos, local, nodev, nosuid, noowners) 

참고 출력의 마지막 행 : 예를 들어, 여기 내 맥에 출력이다. Mac의 경우 마운트 지점은 /mnt 대신 /Volumes 아래에 만들어집니다. 이외의 경우 ALEKS540은 내 SD 카드의 레이블이므로이 방법으로 마운트됩니다.

내부적으로 전화 상으로는 여전히 /mnt/sdcard으로 마운트되어 있습니다. 안드로이드의 관점에서

는 3 개 개의 스토리지 유형이있을 수있다 :

  1. 내장 메모리 항상 장치에 / 아래에 장착하고 SD 카드와 아래에 USB 저장 장치를 제외한 모든 것이 포함되어 있습니다.
  2. SD 카드 - 이것은 "외부 저장소"라고하며 대개는 /mnt/sd으로 탑재되지만 항상 그런 것은 아닙니다. Environment.getExternalStorageDirectory()은 SD 카드 마운트 지점의 경로를 반환합니다.
  3. USB 저장소 - 이것은 매우 적은 장치 (외부 저장소로 USB 호스트 모드를 지원하는 장치)에서만 지원됩니다. 이것은 /mnt 아래에 장착되지만 정확한 위치는 다양합니다. Android NDK를 사용하여 장착 된 기기를 조사하고 반복하여 내가 찾는 기기를 찾아야합니다.
+0

지금 제 질문을 수정했습니다. 샘플 스크린 샷 링크를 추가했습니다. –

+0

@DineshLingam 답변을 업데이트했습니다 –

+0

답변 해 주셔서 감사합니다. 늦은 답변을 드려 죄송합니다. –

관련 문제