Skip to content

DocumentsUI: Open Document intent #460

Open

Description

@VoxelPrismatic

Checklist

  • I made sure that there are no existing issues - open or closed - to which I could contribute my information.
  • I made sure that there are no existing discussions - open or closed - to which I could contribute my information.
  • I have read the FAQs inside the app (Menu -> About -> FAQs) and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the request will be dismissed otherwise.
  • This issue contains only one feature request.
  • I have read and understood the contribution guidelines.

Feature description

I would like to use this app to replace the default com.google.android.documentsui file upload picker app. This intent will mark the app as a file picker, allowing me to actually replace the default app with Fossify.

Why do you want this feature?

Mainly because the default file upload picker app doesn't remember my sorting preference whatsoever, meaning I constantly have to re-sort the videos folder to Modified Descending whenever I want to upload a recent video.

Additional information

There is this excerpt from Material Files which shows the values necessary in the AndroidManifest.xml to mark this app as a file picker to be used in place of the default documentsui app.

https://github.com/zhanghai/MaterialFiles/blob/master/app%2Fsrc%2Fmain%2FAndroidManifest.xml#L111-L117

            <!-- @see https://android.googlesource.com/platform/packages/apps/DocumentsUI/+/main/AndroidManifest.xml -->
            <intent-filter>
                <action android:name="android.intent.action.OPEN_DOCUMENT" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.OPENABLE" />
                <data android:mimeType="*/*" />
            </intent-filter>

Activity

  1. added
    feature requestIssue is about a new feature or improving existing feature/behavior.
    needs triageIssue is not yet ready for PR authors to take up
    on Jul 6, 2026
  2. VoxelPrismatic commented on Jul 6, 2026

    @VoxelPrismatic
    Author

    For example: When I want to share a document from WhatsApp, this File-Manager doesn't open.

    That is, you would like to select files directly using Fossify File Manager without any system file picker in between?

    The file manager options you see in the system file picker depend on the app you are using (WhatsApp in your case). It is not possible to bypass the system picker.

    Because whitout this basic feature I'm forced to install an alternative to this file manager, and I like this one.

    Could you share the name? I couldn't find any file manager that can do this.

    Originally posted by @naveensingh in #213

    You can disable the default file picker (com.google.android.documentsui) with adb. Right now, I am using Zhanghai's Material Files app, which does work, but is a different interface from Fossify. Without this app, I get a toast saying that no file manager is installed, even though I do have Fossify installed.

  3. VoxelPrismatic commented on Jul 6, 2026

    @VoxelPrismatic
    Author

    See also: zhanghai/MaterialFiles#538

    Originally posted by @naveensingh in #213

    I will take on this risk.

    Here is the entire manifest for com.google.android.documentsui
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    	xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
    	android:versionCode="370549140"
    	android:versionName="17" android:compileSdkVersion="37" android:compileSdkVersionCodename="17"
    	android:requiredSplitTypes="base__density" android:splitTypes="" coreApp="true"
    	package="com.google.android.documentsui" platformBuildVersionCode="37"
    	platformBuildVersionName="17">
    	<uses-sdk android:minSdkVersion="31" android:targetSdkVersion="37" />
    	<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
    	<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
    	<uses-permission android:name="android.permission.REMOVE_TASKS" />
    	<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    	<uses-permission android:name="android.permission.WAKE_LOCK" />
    	<uses-permission android:name="android.permission.CACHE_CONTENT" />
    	<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    	<uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" />
    	<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
    	<uses-permission android:name="android.permission.MODIFY_QUIET_MODE" />
    	<uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
    	<uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
    	<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
    	<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    	<uses-permission android:name="android.permission.HIDE_OVERLAY_WINDOWS" />
    	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    	<uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
    	<uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
    	<permission
    		android:name="com.google.android.documentsui.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
    		android:protectionLevel="0x00000002" />
    	<uses-permission
    		android:name="com.google.android.documentsui.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
    	<application android:label="@7F1000AE" android:icon="@7F07007B"
    		android:name="com.android.documentsui.DocumentsApplication"
    		android:backupAgent="com.android.documentsui.prefs.BackupAgent" android:allowBackup="true"
    		android:supportsRtl="true" android:fullBackupOnly="false" android:extractNativeLibs="true"
    		android:appComponentFactory="androidx.core.app.CoreComponentFactory"
    		android:crossProfile="true"
    		android:enableOnBackInvokedCallback="false">
    		<meta-data android:name="android.content.pm.LOGGING_PARENT"
    			android:value="com.google.android.modulemetadata" />
    		<meta-data android:name="com.google.android.backup.api_key"
    			android:value="AEdPqrEAAAAInBA8ued0O_ZyYUsVhwinUF-x50NIe9K0GzBW4A" />
    		<activity android:theme="@android:01030055"
    			android:name="com.android.documentsui.picker.TrampolineActivity" android:exported="true"
    			android:visibleToInstantApps="true">
    			<intent-filter android:priority="120">
    				<action android:name="android.intent.action.GET_CONTENT" />
    				<category android:name="android.intent.category.DEFAULT" />
    				<category android:name="android.intent.category.OPENABLE" />
    				<data android:mimeType="*/*" />
    			</intent-filter>
    		</activity>
    		<activity android:theme="@7F15019F"
    			android:name="com.android.documentsui.picker.PickActivity"
    			android:exported="true" android:visibleToInstantApps="true">
    			<intent-filter android:priority="100">
    				<action android:name="android.intent.action.OPEN_DOCUMENT" />
    				<category android:name="android.intent.category.DEFAULT" />
    				<category android:name="android.intent.category.OPENABLE" />
    				<data android:mimeType="*/*" />
    			</intent-filter>
    			<intent-filter android:priority="100">
    				<action android:name="android.intent.action.CREATE_DOCUMENT" />
    				<category android:name="android.intent.category.DEFAULT" />
    				<category android:name="android.intent.category.OPENABLE" />
    				<data android:mimeType="*/*" />
    			</intent-filter>
    			<intent-filter android:priority="100">
    				<action android:name="android.intent.action.GET_CONTENT" />
    				<category android:name="android.intent.category.DEFAULT" />
    				<category android:name="android.intent.category.OPENABLE" />
    				<data android:mimeType="*/*" />
    			</intent-filter>
    			<intent-filter android:priority="100">
    				<action android:name="android.intent.action.OPEN_DOCUMENT_TREE" />
    				<category android:name="android.intent.category.DEFAULT" />
    			</intent-filter>
    		</activity>
    		<activity android:theme="@android:01030055" android:label="@7F100077"
    			android:icon="@7F0700AC"
    			android:name="com.android.documentsui.files.LauncherActivity" android:taskAffinity="" />
    		<activity-alias android:label="@7F100077" android:icon="@7F0700AC"
    			android:name="com.android.documentsui.LauncherActivity" android:exported="true"
    			android:taskAffinity=""
    			android:targetActivity="com.android.documentsui.files.LauncherActivity"
    			android:resizeableActivity="true">
    			<property android:name="android.window.PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI"
    				android:value="true" />
    			<intent-filter>
    				<action android:name="android.intent.action.MAIN" />
    				<category android:name="android.intent.category.LAUNCHER" />
    				<category android:name="android.intent.category.APP_FILES" />
    			</intent-filter>
    		</activity-alias>
    		<activity android:theme="@7F150154" android:label="@7F100083" android:icon="@7F0700AC"
    			android:name="com.android.documentsui.inspector.InspectorActivity" />
    		<activity android:theme="@7F15019F"
    			android:name="com.android.documentsui.files.FilesActivity"
    			android:exported="true" android:taskAffinity="" android:launchMode="0"
    			android:configChanges="0x00002004" android:documentLaunchMode="2">
    			<property android:name="android.window.PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI"
    				android:value="true" />
    			<intent-filter>
    				<action android:name="android.intent.action.MAIN" />
    			</intent-filter>
    			<intent-filter>
    				<action android:name="android.intent.action.VIEW" />
    				<category android:name="android.intent.category.DEFAULT" />
    				<data android:mimeType="vnd.android.document/root" />
    			</intent-filter>
    			<intent-filter>
    				<action android:name="android.intent.action.VIEW" />
    				<category android:name="android.intent.category.DEFAULT" />
    				<data android:mimeType="vnd.android.document/directory" />
    			</intent-filter>
    		</activity>
    		<activity-alias android:name="com.android.documentsui.ViewDownloadsActivity"
    			android:enabled="@7F040016" android:exported="true"
    			android:targetActivity="com.android.documentsui.files.FilesActivity">
    			<intent-filter>
    				<action android:name="android.intent.action.VIEW_DOWNLOADS" />
    				<category android:name="android.intent.category.DEFAULT" />
    			</intent-filter>
    		</activity-alias>
    		<activity android:theme="@android:01030010"
    			android:name="com.android.documentsui.ScopedAccessActivity" android:exported="true">
    			<intent-filter>
    				<action android:name="android.os.storage.action.OPEN_EXTERNAL_DIRECTORY" />
    				<category android:name="android.intent.category.DEFAULT" />
    			</intent-filter>
    		</activity>
    		<provider android:name="com.android.documentsui.picker.LastAccessedProvider"
    			android:exported="false" android:authorities="com.android.documentsui.lastAccessed" />
    		<provider android:name="com.android.documentsui.picker.PickCountRecordProvider"
    			android:exported="false" android:authorities="com.android.documentsui.pickCountRecord" />
    		<provider android:name="com.android.documentsui.archives.ArchivesProvider"
    			android:permission="android.permission.MANAGE_DOCUMENTS" android:exported="true"
    			android:authorities="com.android.documentsui.archives"
    			android:grantUriPermissions="true">
    			<intent-filter>
    				<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
    			</intent-filter>
    		</provider>
    		<receiver android:name="com.android.documentsui.PackageReceiver" android:exported="true">
    			<intent-filter>
    				<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
    				<action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
    				<data android:scheme="package" />
    			</intent-filter>
    		</receiver>
    		<receiver android:name="com.android.documentsui.roots.BootReceiver" android:enabled="false"
    			android:exported="true">
    			<intent-filter>
    				<action android:name="android.intent.action.BOOT_COMPLETED" />
    			</intent-filter>
    		</receiver>
    		<receiver android:name="com.android.documentsui.PreBootReceiver" android:exported="true">
    			<intent-filter>
    				<action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
    			</intent-filter>
    		</receiver>
    		<service android:name="com.android.documentsui.services.FileOperationService"
    			android:exported="false" android:process=":com.android.documentsui.services"
    			android:foregroundServiceType="0x00000001" />
    		<receiver android:name="androidx.profileinstaller.ProfileInstallReceiver"
    			android:permission="android.permission.DUMP" android:enabled="true"
    			android:exported="true"
    			android:directBootAware="false">
    			<intent-filter>
    				<action android:name="androidx.profileinstaller.action.INSTALL_PROFILE" />
    			</intent-filter>
    			<intent-filter>
    				<action android:name="androidx.profileinstaller.action.SKIP_FILE" />
    			</intent-filter>
    			<intent-filter>
    				<action android:name="androidx.profileinstaller.action.SAVE_PROFILE" />
    			</intent-filter>
    			<intent-filter>
    				<action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
    			</intent-filter>
    		</receiver>
    		<meta-data android:name="com.android.vending.splits.required" android:value="true" />
    		<meta-data android:name="com.android.stamp.source"
    			android:value="https://play.google.com/store" />
    		<meta-data android:name="com.android.stamp.type" android:value="STAMP_TYPE_DISTRIBUTION_APK" />
    		<meta-data android:name="com.android.vending.splits" android:resource="@7F170004" />
    		<meta-data android:name="com.android.vending.derived.apk.id" android:value="2" />
    	</application>
    </manifest>

    List of exported intents and activites:

    • com.android.documentsui.picker.TrampolineActivity
      • android.intent.action.GET_CONTENT
    • com.android.documentsui.picker.PickActivity
      • android.intent.action.OPEN_DOCUMENT
      • android.intent.action.CREATE_DOCUMENT
      • android.intent.action.GET_CONTENT
      • android.intent.action.OPEN_DOCUMENT_TREE
    • com.android.documentsui.LauncherActivity
      • android.intent.action.MAIN
    • com.android.documentsui.files.FilesActivity
      • android.intent.action.MAIN
      • android.intent.action.VIEW
    • com.android.documentsui.ViewDownloadsActivity
      • android.intent.action.VIEW_DOWNLOADS
    • com.android.documentsui.ScopedAccessActivity
      • android.os.storage.action.OPEN_EXTERNAL_DIRECTORY

    Indicating that disabling is safe, actually.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestIssue is about a new feature or improving existing feature/behavior.needs triageIssue is not yet ready for PR authors to take up

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions