SOF 및 Android 개발자 사이트에서 getExternalStorageDirectory() 메소드를 찾을 수 있었지만 휴대 전화에 마운트 된 SD 카드의 여유 공간을 찾을 수있는 방법을 찾고 있습니다. Android API으로 설정하면 외부 디렉토리가 아닌 디렉토리가 반환됩니다.Android에 마운트 된 SD 카드의 실제 크기를 얻는 방법은 무엇입니까?
"일반적으로이 파일은 SD 카드이지만 보호 된 내부 저장소와 다른 장치에 내장 된 저장소로 구현 될 수도 있습니다. 컴퓨터에 파일 시스템으로 마운트. "
그래서 "외부 저장소"디렉토리가 실제로 여러 개의 물리적 저장 장치 (내부 및 외부 메모리)로 분리 될 수 있다는 말을 모았습니다. 그리고 내 테스트에서이 방법을 사용하여 반환되는 크기가 실제 SD 카드 크기의 약 1.5 배인 것으로 밝혀졌습니다.
제 질문은 SD 카드에 전체 크기와 사용 가능한 공간을 반환하는 프로그래밍 방식이 있습니까? 전화 자체는 나에게 그 정보를 줄 수 있기 때문에 나는 길을 가져야한다고 느낀다. 그러나 나는 지금 당장 실망하고있다 ... 어떤 도움도 인정 될 것이다! 편집
: 이것은 내가 현재
private long TotalSDMemory(){
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getAbsolutePath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
long totalSpace = totalBlocks * blockSize;
Log.d(TAG,"Size of total SD Memory: "+totalSpace);
Log.d(TAG, "External storage emulated: "+Environment.isExternalStorageEmulated());
return totalSpace;
}
편집 (2) 전체 크기를 위해 사용하고 코드입니다 : 무엇을 어떤 내가이 중요 몰랐다 그러나 나는 삼성 갤럭시 S3가 I 코드를 테스트하는 데 사용하고 있는데, 분명히 삼성은 외부 메모리에 대해 다른 파일 구조를 가지고 있습니다. 다른 사람이 올바른 크기를 얻는 데 도움이되는 링크는 다음과 같습니다. Get size of SD card in Samsung phones
편집 (2) :이 중요 몰랐다하지만 난이 삼성 전자 갤럭시 S3는 코드를 테스트하기 위해 사용하고있다. 분명히 삼성은 외부 메모리를위한 파일 구조가 다르다. 다른 사람들이 올바른 크기를 얻는 데 도움이되는 링크는 다음과 같습니다. [Samsung 휴대 전화에서 SD 카드를 가져옵니다.] (http://stackoverflow.com/questions/12087510/check-if-the-sdcard-is-present-boolean- is-always-true) –