A FileBrowser / FileChooser for Android that you can integrate to your app to browse/select files from internal/external storage.
<dependency>
<groupId>com.adityak</groupId>
<artifactId>browsemyfiles</artifactId>
<version>1.2</version>
<type>pom</type>
</dependency>
compile 'com.adityak:browsemyfiles:1.2'
It easily integrates with your app's color scheme. You can change the color scheme using the following in your styles.xml
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:actionModeBackground">@color/actionModeToolbar</item>
There are 3 main classes to use the library.
- FileBrowser - Used to just Browse files in storage (has all file IO features)
- FileChooser - Used to select single/multiple files in storage (has some IO features)
- FileBrowserWithCustomHandler - Used to run custom code when files are selected (has all IO features)
Use following Intent to start the FileBrowser
Intent i4 = new Intent(getApplicationContext(), FileBrowser.class);
startActivity(i4);
Use following Intent to start the FileChooser
- For Single Selection
Intent i2 = new Intent(getApplicationContext(), FileChooser.class);
i2.putExtra(Constants.SELECTION_MODE,Constants.SELECTION_MODES.SINGLE_SELECTION.ordinal());
startActivityForResult(i2,PICK_FILE_REQUEST);
To get the selected file, In your calling activity's onActivityResult method, use the following
if (requestCode == PICK_FILE_REQUEST && data!=null) {
if (resultCode == RESULT_OK) {
Uri file = data.getData();
}
}
- For Multiple Selection
Intent i2 = new Intent(getApplicationContext(), FileChooser.class);
i2.putExtra(Constants.SELECTION_MODE,Constants.SELECTION_MODES.MULTIPLE_SELECTION.ordinal());
startActivityForResult(i2,PICK_FILE_REQUEST);
To get the selected file, In your calling activity's onActivityResult method, use the following
if (requestCode == PICK_FILE_REQUEST && data!=null) {
if (resultCode == RESULT_OK) {
ArrayList<Uri> selectedFiles = data.getParcelableArrayListExtra(Constants.SELECTED_ITEMS);
}
}
Register a Broadcast receiver and handle the onReceive method like below
public class FileSelectedBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Uri filePath = intent.getParcelableExtra(com.aditya.filebrowser.Constants.BROADCAST_SELECTED_FILE);
}
}
Register the receiver like the following snippet
<receiver android:name=".FileSelectedBroadCastReceiver"
android:exported="false"
android:enabled="true">
<intent-filter>
<action android:name="com.adityak.filebrowser.FILE_SELECTED_BROADCAST" />
</intent-filter>
</receiver>
If you also need some other parameters to be sent with the broadcast use the following when creating the activity
Intent i = new Intent(mContext, FileBrowserWithCustomHandler.class);
Bundle ib = new Bundle();
//add extras
i.putExtras(ib);
startActivity(i);
and in the broadcast receiver use the following to get the extras
Bundle b = intent.getExtras()
If you have any questions/queries/Bugs/Hugs please mail @ [email protected]