diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index d7ca00fcc..90f88c34a 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -41,6 +41,16 @@
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="false" />
+
+
+
+
diff --git a/android/app/src/main/java/deckers/thibault/aves/channelhandlers/AppAdapterHandler.java b/android/app/src/main/java/deckers/thibault/aves/channelhandlers/AppAdapterHandler.java
index 395392296..7976027df 100644
--- a/android/app/src/main/java/deckers/thibault/aves/channelhandlers/AppAdapterHandler.java
+++ b/android/app/src/main/java/deckers/thibault/aves/channelhandlers/AppAdapterHandler.java
@@ -10,6 +10,7 @@ import android.graphics.Bitmap;
import android.net.Uri;
import androidx.annotation.NonNull;
+import androidx.core.content.FileProvider;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.Key;
@@ -18,6 +19,7 @@ import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.signature.ObjectKey;
import java.io.ByteArrayOutputStream;
+import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -190,7 +192,16 @@ public class AppAdapterHandler implements MethodChannel.MethodCallHandler {
private void share(String title, Uri uri, String mimeType) {
Intent intent = new Intent(Intent.ACTION_SEND);
- intent.putExtra(Intent.EXTRA_STREAM, uri);
+ if (ContentResolver.SCHEME_FILE.equalsIgnoreCase(uri.getScheme())) {
+ String path = uri.getPath();
+ if (path == null) return;
+ String applicationId = context.getApplicationContext().getPackageName();
+ Uri apkUri = FileProvider.getUriForFile(context, applicationId + ".fileprovider", new File(path));
+ intent.putExtra(Intent.EXTRA_STREAM, apkUri);
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ } else {
+ intent.putExtra(Intent.EXTRA_STREAM, uri);
+ }
intent.setType(mimeType);
context.startActivity(Intent.createChooser(intent, title));
}
diff --git a/android/app/src/main/res/xml/provider_paths.xml b/android/app/src/main/res/xml/provider_paths.xml
new file mode 100644
index 000000000..fafa14f89
--- /dev/null
+++ b/android/app/src/main/res/xml/provider_paths.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file