Here is my code for sharing multiple files using the Capacitor Share plugin. It is working in iOS.
async shareFiles(files: ShareFile[]) {
try {
let filesUri: string[] = [];
for (let i = 0; i < files.length; i++) {
const file = files[i];
const uriResult = await Filesystem.writeFile({
path: file.fileName,
data: file.base64String,
directory: Directory.Cache
});
filesUri.push(uriResult.uri);
}
const shareResult = await Share.share({
files: filesUri
});
}
catch(error) {
console.error('There has been a problem with your Share operation:', error);
}
}
Android Studio is throwing this error message when trying to share more than 1 files. Tested on Android 10 to 13.
E/DatabaseUtils: Writing exception to parcel
java.lang.SecurityException: Permission Denial: reading androidx.core.content.FileProvider uri content://com.myapp.fileprovider/my_cache_images/photo-6065831.jpg from pid=8770, uid=1000 requires the provider be exported, or grantUriPermission()
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:832)
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:694)
at android.content.ContentProvider$Transport.enforceFilePermission(ContentProvider.java:684)
at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:543)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:327)
at android.os.Binder.execTransactInternal(Binder.java:1179)
at android.os.Binder.execTransact(Binder.java:1143)
I have this in block in AndroidManifest.xml.
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>
Please advise.
Capacitor Doctor
Latest Dependencies:
@capacitor/cli: 4.7.3
@capacitor/core: 4.7.3
@capacitor/android: 4.7.3
@capacitor/ios: 4.7.3
Installed Dependencies:
@capacitor/core: 4.7.3
@capacitor/cli: 4.7.3
@capacitor/android: 4.7.3
@capacitor/ios: 4.7.3