내 프로젝트의 경우 센서 데이터를 파일로 저장하고 나중에 분석을 위해 PC에서 액세스 할 수 있기를 원합니다. 이것은 내가 지금까지 가지고 성공적으로 작동하는 코드입니다 :Nexus 7의 외부 저장소에 파일 저장 및 PC에서 검색
File root = Environment.getExternalStorageDirectory();
File csvfile = new File(root, "Sensor_Data.csv");
FileWriter writer = new FileWriter(csvfile, true);
writer.append("Time");
writer.append(',');
writer.append("Position");
writer.append('\n');
Number data[] = new Number[4000];
for (int i = 0; i<4000; i+=2){
posHistory.toArray(data);
writer.append(String.valueOf(data[i]));
writer.append(',');
writer.append(String.valueOf(data[i+1]));
writer.append('\n');
}
writer.flush();
writer.close();
문제는 넥서스 7이 실제로 나는 그것이 대부분과 호환되도록하기 위해 에뮬레이터의 일종을 사용하여 생각 (외부 저장 장치를하지 않는다는 것입니다 앱에서 코드에 외부 저장소를 사용하는 응용 프로그램)
장치에서 Astro File Manager를 사용하여이 코드를 실행 한 후/sensor/data/sdcard0 파일의 네 위치에 "Sensor_Data.csv"파일이 표시됩니다./storage/emulated/0 및/storage/emulated/legacy가 있습니다. 그리고 그들 각각은 texteditor 또는 documentviewer를 사용하여 장치 내에서 열 수 있으며 모든 데이터가 있습니다.
문제는 Nexus 7을 PC에 연결할 때 실제로 열 때 실제 내부 저장소가 아닌 가상 SD 카드의 내용 만 표시되지만 .csv 파일은 ' 거기있어. "storage/emulated/legacy"라는 추가 디렉토리가 있지만 아무것도없고 "sdcard0"또는 "0"폴더도 없습니다. "Environment.getExternalStorageDirectory(). getAbsolutePath()"를 실행하여 경로가 정확히 무엇인지 확인합니다./
파일을 내부 저장소의 아무 곳에 나 저장하지 않고 저장하려고 시도했지만 앱을 외부 저장소를 사용하는 대부분의 기기와 호환되도록 '외부 저장소'에 보관하는 것이 좋습니다.
UPDATE 그래서 ADB 풀 파일 이름을 사용 후 여기 결과입니다 :
adb pull /storage/emulated/0/Sensor_Data.csv
remote object '/storage/emulated/0/Sensor_Data.csv' does not exist
adb pull /storage/emulated/legacy/Sensor_Data.csv
243 Kb/s <1495 bytes in 0.006s>
adb pull /storage/sdcard0/Sensor_Data.csv
243 Kb/s <1495 bytes in 0.006s>
adb pull /sdcard/Sensor_Data.csv
243 Kb/s <1495 bytes in 0.006s>
그래서, 작동하지 않는 유일한 위치 /storage/emulated/0/Sensor_Data.csv 짝수는 아스트로 네에서 그것을보고 로그 캣 그것이/저장 장치에 저장되고 있음을 보여주고 있지만 /도/0/
그냥
,498에 저장하려고 에뮬레이트3210Astro에서 같은 네 위치에서 다시 볼 수 있지만 Windows 탐색기를 거쳐 다운로드 폴더로 이동할 때 해당 폴더가 없습니다.
내가 찾았습니다. Nexus 4 및 7의 버그입니다. http://stackoverflow.com/questions/13737261/nexus-4-not-showing-files-via-mtp – billtian
굉장하고, 이것이 단지 넥서스 7의 버그이며 앱이 아니라 실제 SD 카드를 사용하는 다른 안드로이드 기기에서도 잘 작동해야합니다. 곧 확인을 위해 넥서스 7/4 이외의 응용 프로그램에서 응용 프로그램을 테스트 해 보겠습니다.바라건대이 버그가 안드로이드 업데이트에서 수정되기 전에 그것은 단지 시간 문제입니다. –