I think Android DirectoryChooser will help you choose the directory to save the file.
manifest
You need to declare DirectoryChooserActivity and request permission android.permission.WRITE_EXTERNAL_STORAGE .
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ... <application> <activity android:name="net.rdrei.android.dirchooser.DirectoryChooserActivity" /> </application>
activity
To select a directory, run the action from your application logic:
final Intent chooserIntent = new Intent(this, DirectoryChooserActivity.class); final DirectoryChooserConfig config = DirectoryChooserConfig.builder() .newDirectoryName("DirChooserSample") .allowReadOnlyDirectory(true) .allowNewDirectoryNameModification(true) .build(); chooserIntent.putExtra(DirectoryChooserActivity.EXTRA_CONFIG, config);
Process the result in the onActivityResult method:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_DIRECTORY) { if (resultCode == DirectoryChooserActivity.RESULT_CODE_DIR_SELECTED) { handleDirectoryChoice(data .getStringExtra(DirectoryChooserActivity.RESULT_SELECTED_DIR)); } else {
source share