2012-04-13 9 views
7

SD 카드에 파일을 작성해야하는 응용 프로그램을 개발 중입니다. 쓸 디렉터리를 결정하기 위해 GetExternalStoragePublicDirectory()를 사용하고 있습니다.SD 카드에 파일을 쓰고 USB 저장 장치가 아닌 파일을 작성하십시오.

저는 두 개의 휴대폰을 가지고 있습니다. Android 4.0.4 (Ice cream sandwich)를 실행하는 Google Nexus S에서 SD 카드의 디렉토리를 반환합니다. 그러나 안드로이드 2.3.5를 구동하는 삼성 전시 2에서는 휴대폰의 USB 저장 장치에 직접 쓰고있다.

SD 카드를 강제로 사용할 수 있습니까?

편집 :

내가 발견 getExternalStoragePublicDirectory() 및 getExternalStorageDirectory() 항상 반환하는 "/ MNT/SDCARD /". 이것은 실제로 sd 카드의 마운트 위치가 아닙니다. 삼성 전시 2에서 이것은 USB 저장 위치입니다. 카드 마운트 위치는 "/ mnt/sdcard/external_sd"입니다. 이 실제 sd 위치를 반환하는 방법이 있습니까?

나는 카메라와 다른 앱이 그것을 할 수있는 방법을 찾았 음을 알았다. 카메라 앱에는 '전화'및 '메모리 카드'옵션이있는 '저장 용량'설정이 있습니다. "메모리 카드"가 지정되면 이미지는 실제로 SD 카드에 저장됩니다. 당신은 SD 카드에 기록 할 경우

+1

+1 "Android는 모든 기기에서 항상 동일하게 실행됩니다."더 나은 플랫폼 독립 개발을 사용합니다. Motorola Defy : sdcard-ext (밑줄 없음) –

답변

2

사용할 수 있습니까?

아니요, 현재 Android SDK에는 없습니다.

나는 카메라와 다른 응용 프로그램이 그것을 할 수있는 방법을 발견했습니다.

주로 장치 제조업체가 작성한 것이거나 MediaStore을 통해 정보를 읽는 두 가지 원본의 색인을 생성해야합니다.

0

만이 실제 SD 위치를 반환하는 방법이 있나요

File mySdCardPath = Environment.getExternalStorageDirectory(); 
File dir = new File (mySdCardPath.getAbsolutePath() + "/yourDirectoryName"); 
+1

설명 된 솔루션은 GetExternalPublicDirectory ("yourDirectoryName")를 사용하는 것과 동일한 동작을 두 전화기에 모두가집니다. GetExternalStorageDirectory()에서 반환되는 디렉터리는 실제로 "/ mnt/sdcard"입니다. 외관상으로는 Samsung 전시회 2에, 이것은 USB 저장 장치입니다. 실제 sdcard는 "/ mnt/sdcard/external_sd"에 있습니다. 분명히 이것은 알려진 문제입니다. 참조 : http://stackoverflow.com/q/5694933/758074 –

관련 문제