I want to download a file to the Downloads directory and then view it when the user wants to open it. I am able to save the file to the downloads directory, but the problem arises when I try to view it using an Intent Chooser. At first, I saw the file gets saved with the path: storage/emulated/0/Download/filename but I wasn't aware how to access this path for different versions of devices, so I got the answer for this question from the question i posted earlier here.
Now, I am able to view the file as well since I'm aware of the filename, it's mimetype, and the path from the above explanation. But, the problem is, I am only able to view the file via the Intent Chooser for devices like Google Pixel and Samsung m 30s running on Android 10, and when I tried for devices like Realme 3 Pro, Oneplus 6 and some MI device that were also running on Android 10, after an app is selected from the Intent Chooser, instead of opening the file on these devices it tries to open the file but then jumps back to my app without opening the file. For devices below Android 10 the problem doesn't seem to exist to me.
The code for my DownloadRepository and MainActivity can be found in the Github gists here and here respectively.
I am currently not attaching code for the FileProvider in the Android Manifest and the provider_paths in the XML since it is working for some devices but I can attach that too if needed :)
EDIT
here is my Android Manifest and the path for FileProvider:
Android Manifest permissions and FileProvider
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />
<uses-permission
android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="downloads"
path="/Download" />
</paths>