pwlin / cordova-plugin-file-opener2

A File Opener Plugin for Cordova
MIT License
314 stars 583 forks source link

Android Q support , Migrating legacystorage #310

Open deepti1408 opened 3 years ago

deepti1408 commented 3 years ago

The plugin uses FileProvider.getUriForFile() whichis now nolonger supported fromAndroid Q scoped storage. Please release an update with new storage scope Mediastore api for android Q support

Android 10 and up

Pixel 2

Plugin version

cordova plugin version | grep cordova-plugin-file-opener2

Here is the output: 3.0.5

cinnamon-doge commented 3 years ago

I think we're running out of time regarding this issue, as Google chimes in on this:

We've detected that your app contains the requestLegacyExternalStorage flag in the manifest file of one or more of your app bundles or APKs.

Developers with apps on devices running Android 11+ must use scoped storage to give users better access control over their device storage. To release your app on Android 11 or newer after 5 May, you must either:

Update your app to use more privacy-friendly best practices, such as the storage access framework or Media Store API Update your app to declare the All files access (MANAGE_EXTERNAL_STORAGE) permission in the manifest file, and complete the All files access permission declaration in Play Console from 5 May Remove the All files access permission from your app entirely

For apps targeting Android 11, the requestLegacyExternalStorage flag will be ignored. You must use the All files access permission to retain broad access.

Apps requesting access to the All files access permission without a permitted use will be removed from Google Play, and you won't be able to publish updates.

mharper6008 commented 2 years ago

It doesn't appear that this is something that is going to move forward.....or at least with any amount of timeliness. Has anyone taken an alternative approach to opening files in their default app?

alex-steinberg commented 2 years ago

@pwlin has there been any progress here? I'm happy to help but I'll need to be sent in the right direction as I'm not an Android dev.

iamrakesh commented 1 year ago

Using cordova-plugin-file implementation to get native URI for the file and using it for this plugin should work

resolveLocalFileSystemURI() returns FileEntry, which has 'nativeURL' property, value of which can be used as parameter to this plugin's FileOpener2.open() method