Salvando arquivos em armazenamento externo no Nexus 7 e recuperando do PC

Para o meu projeto, quero poder salvar os dados do sensor em um arquivo e poder acessá-lo de um PC para análise posterior. Este é o código que tenho até agora e funciona com sucesso:

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();

O problema é que o Nexus 7 não tem armazenamento externo (acredito que ele usa algum tipo de emulador para ser compatível com a maioria dos aplicativos que fazem uso de armazenamento externo em seu código).

Depois de executar este código, usando o gerenciador de arquivos do Astro no dispositivo, vejo um arquivo "Sensor_Data.csv" em quatro locais: / sdcard, / storage / sdcard0, / storage / emulated / 0 e / storage / emulated / legacy. E cada um deles eu posso abrir de dentro do dispositivo usando o texteditor ou o documentviewer e todos os dados estão lá.

O problema é que quando conecto o Nexus 7 ao PC, vejo apenas "Armazenamento interno" que, quando aberto, mostra apenas o conteúdo do cartão SD virtual, não o armazenamento interno real, mas o arquivo .csv não está lá. Há um diretório adicional "armazenamento / emulado / legado", mas nada lá, e não "sdcard0" ou "0" pastas também. Quando eu registro "Environment.getExternalStorageDirectory (). GetAbsolutePath ()" para ver exatamente o caminho que eu recebo / storage / emulated / 0

Eu tentei salvar o arquivo em outro lugar no armazenamento interno sem sucesso, mas eu prefiro mantê-lo em "armazenamento externo" para que o aplicativo seja compatível com a maioria dos dispositivos que usam armazenamento externo.

ATUALIZAR&nbsp;Então, depois de usar o nome do arquivo adb pull, aqui estão os resultados:

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>

Portanto, o único local que não funciona é /storage/emulated/0/Sensor_Data.csv, embora o Astro o veja em todos os quatro e o LogCat mostre que está sendo salvo em / storage / emulated / 0 /

Também tentei salvar para

root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

mais uma vez eu posso ver no Astro nos mesmos quatro locais, mas quando eu atravesso o Windows Explorer e navego para a pasta de downloads não está lá.