2013-04-16 2 views
0

다음 코드 스 니펫은 Gesture 개체를 저장하려고합니다.넥서스의 외부 저장소 디렉토리 란 무엇입니까? 012

private Gesture mGesture; 
private GestureLibrary store; 
store.addGesture("test", mGesture); 
store.save(); 

나는 mGesture가 저장되는 궁금하네요?

final String path = new File(Environment.getExternalStorageDirectory(), 
        "gestures").getAbsolutePath(); 
Toast.makeText(this, getString(R.string.save_success, path), Toast.LENGTH_LONG).show(); 

그래서 나는 mGesture 어딘가에 path에 의해 표시에 저장되어있는 것 같아요 : 그냥 위의 코드를 다음

, 저자는 다음과 같은 코드를 제공합니다. 하지만 경로가 무엇인지 모르겠습니다. 나는 디버깅을 시도했다. 그것은 나에게 "storage/emulated/0/gestures /"와 같은 것을 준다. 하지만 내 장치에서이 디렉토리를 찾을 수 없습니다. 그건 그렇고, 내 장치는 넥서스 4

답변

0

Nexus 장치에는 SD 슬롯이 없습니다. 그들은 내부 드라이브의 어딘가에있는 SD 카드를 가장합니다. 그러나 함수에 의해 반환 된 정확한 경로가 장치에 존재합니다. 그렇지 않으면 파일을 만들 수 없습니다.

그런데 장치간에 반환 값이 동일하지 않아야합니다. 그렇지 않습니다.

+0

'GestureLibrary'의'save' 메소드의 경우 대상 객체를 저장할 위치를 "어디에"지정하지 않은 것으로 보입니다. 어떻게 'save'메소드는 저장 위치를 ​​알 수 있습니까? – Fihop

0

네가 gabe에 동의하고 이것은 단지 제안 일 뿐이지 만 mkdirs와 함께 if와 else를 사용하여 디렉토리 또는 폴더가 존재하는지 확인하고 이미 존재하지 않으면 지정된 위치에 새 폴더를 만듭니다.

0

Nexus 4에는 외부 SD가 없으므로 (현재 Nexus 5와 동일 함) 해당 OS가 SD를 일시적으로 에뮬레이트합니다. 따라서 Environment.getExternalStorageDirectory()을 호출하면 tempDirPath:/storage/emulated/0/ 경로가 반환되지만 나중에 /storage/emulated/legacy에 액세스 할 수 있습니다.

adb shell을 통해 액세스를 시도하면이 legacy 폴더는 에뮬레이션 된 외부 SD의 콘텐츠를 저장합니다.

관련 문제