David
David

Reputation: 1770

Android, how to choose save file location?

is there any solution how to choose the saving files location? maybe with the original file browser, to choose the destination?

thank you!

Upvotes: 12

Views: 28204

Answers (3)

Maxim
Maxim

Reputation: 4214

Better to save files with your app namespace:

String extStorage = Environment.getExternalStorageState();
path = extStorage+"/Android/data/com.mydomain.myapp/";

It will be deleted when app gets uninstalled.

Here is actually everything about data storing.
http://developer.android.com/guide/topics/data/data-storage.html

From the above link:

If you're using API Level 7 or lower, use getExternalStorageDirectory(), to open a File representing the root of the external storage. You should then write your data in the following directory:

/Android/data/<package_name>/files/

Upvotes: 3

Basbous
Basbous

Reputation: 3925

All you need is Android Directory Picker

Upvotes: 9

Pork &#39;n&#39; Bunny
Pork &#39;n&#39; Bunny

Reputation: 6731

It's probably easiest and expected to save this out to the dedicated area on the external SD card.

You can get this folder by calling

file://localhost/Applications/android-sdk-macosx/docs/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)

File path = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES)

You can also append a sub-folder to reference the source better ie. your app.

You can either choose DIRECTORY_PICTURES or DIRECTORY_MOVIES. If it's user created I'd probably stick to pictures.

To be helpful you can also call the media scanner to add it to the appropriate content provider system wide.

sendBroadcast( new Intent(Intent.ACTION_MEDIA_MOUNTED, 
                    Uri.parse("file://" + Environment.getExternalStorageDirectory()))
        );

If you MUST get a file chooser going, which isn't the recomened approach to expose the user to the file system. Try the file chooser form Open Intents. http://www.openintents.org/en/node/164

Upvotes: 0

Related Questions