안드로이드 응용 프로그램은 실제 장치 (필자의 경우/dev/block/vold/179 : 1)에 액세스하여 SD 카드의 물리적 섹터를 읽으려고합니다. (물론 뿌리를 휴대 전화에)2GB보다 큰 SD 카드의 안드로이드 저수준 읽기
기기를 열고 FileInputStream
으로 데이터를 읽을 수 있습니다. 그러나, 나는 2GB 표 (나의 메모리 카드는 16GB이다) 지나서 그것을 읽는 것처럼 보일 수 없다.
Android는 2GB가 넘는 파일을 지원하지 않으므로이 방법이 있습니까? 그렇다면 position()
및 skip()
과 같은 함수가 long
인수를 허용하는 이유는 무엇입니까 ??
2GB를 초과하여 기기에서 읽는 방법에 대한 조언이있는 사람이 있습니까?
이 동작은 Android 3.0 이전 버전에서만 발생합니다. 나는 태블릿 (3.1)에서 내 응용 프로그램을 실행하려했는데 실제로 2GB를 초과하는 SD 카드 (내부 메모리는 물론)를 읽을 수 있습니다. –
I/O 작업을 사용하기 때문에 허니컴 이전의 모든 것이 2GB로 제한됩니다. lseek64 대신 lseek. http://code.google.com/p/android/issues/detail?id=21696에서 문제를 확인할 수 있습니다. – Matt