2012-05-08 3 views
11

대용량 콘텐츠를 다운로드하는 앱이 있습니다 (사용자마다 다르지만 1GB 이상인 경우 200MB).Android - SD 카드에 앱을 설치할 때 내부 저장소와 외부 저장소

현재이 콘텐츠는 SD 카드와 같이 가장 많은 공간이있는 외부 저장소에 저장됩니다. 이것은 대부분 잘 작동하지만 이것이 반드시 이상적인 것은 아닌 상황이 있습니다.

기기가 대부분의 태블릿처럼 외장 스토리지를 갖추고 있지만 SD 카드 슬롯이있는 경우 외부 저장소 문제가 다소 복잡해집니다. 앱은 SD 카드에 설치할 수 있지만 콘텐츠는 외부 SD 카드가 아닌 내장 된 저장 공간에 저장됩니다.

앱이 SD 카드에 설치되어있는 경우 getFilesDir()은 SD 카드 또는 내부 저장소에 경로를 제공하나요?

그리고 이것을 처리하는 가장 좋은 방법은 무엇입니까? 콘텐츠를 내부 저장소 (SD 카드에 있음), 외부 저장소에 저장해야할까요, 아니면 앱을 시작할 때 사용자에게 가장 좋은 생각인지 묻는 중입니까?

답변

5

앱은 SD 카드에 설치할 수 있지만 콘텐츠는 외부 SD 카드가 아닌 내장 된 저장소에 저장됩니다.

아니요. 기기에 외부 저장소가있는 경우 앱이 외부 저장소에 설치됩니다. 장치 에 SD 카드가 있는지 여부는 중요하지 않습니다.

앱이 SD 카드에 설치되어있는 경우 getFilesDir()을 호출하면 SD 카드 또는 내부 저장소에 경로가 표시됩니까?

getFilesDir()에 관계없이 응용 프로그램이 설치되는 위치, 항상 내부 스토리지입니다.

+0

'No. 기기에 외부 저장소가있는 경우 앱이 외부 저장소에 설치됩니다.기기에 SD 카드가 있는지 여부는 중요하지 않습니다. '그렇다면 외장 스토리지가 내장 된 경우 SD 카드에 앱을 설치할 수 없다는 말입니까? –

+0

@DavidScott : 아니요, Andrdoid에는 "SD 카드에 설치"라는 개념이 없습니다. * 외부 저장 장치가 SD 카드인지 여부는 장치 제조업체에 달려 있습니다. http://developer.android.com/guide/appendix/install-location.html – CommonsWare

+0

아 좋아. 나는 사람들이 Apps2SD를 사용하여 내장 된 외부 저장소에서 SD 카드로 응용 프로그램을 이동시키고 있다고 생각합니다. 해명 해줘서 고마워. –

0

앱을 getFilesDir()가 SD 카드 또는 내부 저장소에 경로를 제공 호출하는 것, SD 카드에 설치하는 경우?

getFilesDir() 방법은 Context 클래스에서 항상 내부 저장소 (Android 용어로) 경로를 반환합니다.

대부분의 경우 getFilesDir()에 의해 반환되는 디렉터리 경로는 /data/data/your.application.package.appname/files이됩니다. 하지만 그것은 다른 휴대폰, 다양한 안드로이드 버전에 따라 다를 수 있습니다.

SD 카드에 앱 파일을 저장하려면 Context 클래스에서 File[] getExternalFilesDirs (String type) 메서드를 사용할 수 있습니다. 일반적으로 두 번째로 반환되는 경로는 microSD 카드의 저장 경로입니다 (있는 경우). 내 휴대 전화에

는 두 번째 경로는 구글/공식 안드로이드 문서에 따라 getExternalFilesDirs (String type)

에 대한 인수로 내부 및 외부 스토리지 용어를 null을 통과 한 후 /storage/sdcard1/Android/data/your.application.package.appname/files을 반환 된 우리가 생각하는 것과 상당히 다른 입니다.

관련 문제