Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: save file to downloads that can be viewed later

I have an app that needs to collect a bunch of data while connected to a stream. I need to save this data to a file that I can later pull off my device and analyze using a standard computer.

My code currently looks like:

private void saveData(byte[] data){
    File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
    File file = new File(path, "_Ascent_Test.txt");        
    try {                      
        FileOutputStream stream = new FileOutputStream(file, true);             
        stream.write(data);            
        stream.close();
        Log.i("saveData", "Data Saved");        
    } catch (IOException e) {
        Log.e("SAVE DATA", "Could not write file " + e.getMessage());
    }       
}

It's correctly hitting the "Data Saved" log without any errors yet I cannot find the file anywhere in the devices internal storage when I browse it from my computer.

What am I missing?

Thanks.

Edit: I'm needed to run this on a Nexus 7

like image 552
Chuck Finley Avatar asked Dec 07 '25 08:12

Chuck Finley


2 Answers

Files are not visible unless you make them explicitly available. See my blog post about the MediaScanner to read more about this.

It's the developer's job to take care of this and to make sure that all files, the user might want to access, are made available to the MediaScanner.

like image 100
Wolfram Rittmeyer Avatar answered Dec 08 '25 22:12

Wolfram Rittmeyer


I wanted to do a very similar thing. Here's how I got it to work using your code EXACTLY.

After running my code to make the file(/storage/emulated/0/Download/_Ascent_Test.txt):

I downloaded the ES File Explorer.

In the "Fast Access" menu towards the bottom I turned "Show hidden files" ON.

Then, also in the "Fast Access" menu, go to local -> / Device.

Now you will be able to navigate to the /storage folder and all the way down to _Ascent_test.txt

From there you can open it and email it yourself. Hope this helped!

like image 24
user3718453 Avatar answered Dec 08 '25 20:12

user3718453



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!