0
public void onClick(View v) {
// Writing data to file
FileWriter fw;
try {
fw = new FileWriter(Environment.getExternalStorageDirectory()+"/DataLog.csv", true);
BufferedWriter br = new BufferedWriter(fw);
br.append(formattedDate + String.valueOf(location.getLatitude()) +
";" + String.valueOf(location.getLongitude()) +
";" + String.valueOf(location.getSpeed()) +
";" + String.valueOf(location.getBearing()) +
";" + String.valueOf(location.getAltitude()) +
";" + String.valueOf(location.getAccuracy()));
br.append("\r\n");
br.close();
fw.close();
// MediaScanner scans the file
MediaScannerConnection.scanFile(MainActivity.this, new String[] {fw.toString()} , null, new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, Uri uri) {
Toast t = Toast.makeText(MainActivity.this, "Scan comlete", Toast.LENGTH_LONG);
t.show();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
sd 루트의 DataLog.csv 파일에 데이터를 쓰려고했습니다. 코드는 데이터로 파일을 생성하지만 sdcard를 탐색 할 때 Windows에서 파일을 볼 수 없습니다. this 비디오를 보았지만 지시 사항을 따르지만 제대로 작동하지 않습니다. 아마도 fw 변수가 파일을 정의하기에 좋지 않을까요?MediaScannerConnection이 작동하지 않습니다.
File csv = new File (Environment.getExternalStorageDirectory(), "DataLog.csv");
MediaScannerConnection.scanFile(
MainActivity.this,
new String[] {csv.getAbsolutePath()},
null, null);
나는이 같은 조언을 시도했지만 여전히 아무것도하지 않습니다.
고맙습니다! 나는 이것을 시도했다 :'Environment.getExternalStorageDirectory() + "DataLog.csv"'그것은 효과가 없다. 나는 pogramming에서 "새로운 사람"입니다. 스캔 파일의 경로를 어떻게 알 수 있습니까? – user2628458
@ user2628458 : 연결을 사용하여 파일 경로를 만들지 않겠습니다. 적절한'File' 생성자를 사용하십시오 :'new File (Environment.getExternalStorageDirectory(), "DataLog.csv")'. 그런 다음'getAbsolutePath()'를 호출하여 경로를 문자열로 가져올 수 있습니다. 또한 Windows에서 파일 데이터를 캐시하는 경우가 있으므로 변경 사항을 확인하려면 장치를 Windows 볼륨으로 마운트 해제하고 다시 마운트해야 할 수도 있습니다. – CommonsWare
질문 하단을보십시오. 내가 잘못 했니? Android 2.3.3을 사용하면 문제가 될 수 있습니까? – user2628458