diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/ActivityLaunchers.java b/briar-android/src/main/java/org/briarproject/briar/android/util/ActivityLaunchers.java
index cd7456c890c105fb893eef0136d8d0c320c8486b..7798e6659e37c2affaea8a4aef21573c67beb339 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/util/ActivityLaunchers.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/util/ActivityLaunchers.java
@@ -10,12 +10,14 @@ import androidx.activity.result.contract.ActivityResultContract;
 import androidx.activity.result.contract.ActivityResultContracts.CreateDocument;
 import androidx.activity.result.contract.ActivityResultContracts.GetContent;
 import androidx.activity.result.contract.ActivityResultContracts.GetMultipleContents;
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import static android.app.Activity.RESULT_CANCELED;
 import static android.bluetooth.BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE;
 import static android.bluetooth.BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION;
 import static android.content.Intent.EXTRA_MIME_TYPES;
+import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
 import static android.os.Build.VERSION.SDK_INT;
 import static org.briarproject.bramble.util.AndroidUtils.getSupportedImageContentTypes;
 
@@ -23,6 +25,7 @@ import static org.briarproject.bramble.util.AndroidUtils.getSupportedImageConten
 public class ActivityLaunchers {
 
 	public static class CreateDocumentAdvanced extends CreateDocument {
+		@NonNull
 		@Override
 		public Intent createIntent(Context context, String input) {
 			Intent i = super.createIntent(context, input);
@@ -32,20 +35,24 @@ public class ActivityLaunchers {
 	}
 
 	public static class GetContentAdvanced extends GetContent {
+		@NonNull
 		@Override
 		public Intent createIntent(Context context, String input) {
 			Intent i = super.createIntent(context, input);
 			putShowAdvancedExtra(i);
+			i.addFlags(FLAG_GRANT_READ_URI_PERMISSION);
 			return i;
 		}
 	}
 
 	public static class GetImageAdvanced extends GetContent {
+		@NonNull
 		@Override
 		public Intent createIntent(Context context, String input) {
 			Intent i = super.createIntent(context, input);
 			putShowAdvancedExtra(i);
 			i.setType("image/*");
+			i.addFlags(FLAG_GRANT_READ_URI_PERMISSION);
 			if (SDK_INT >= 19)
 				i.putExtra(EXTRA_MIME_TYPES, getSupportedImageContentTypes());
 			return i;
@@ -54,11 +61,13 @@ public class ActivityLaunchers {
 
 	@TargetApi(18)
 	public static class GetMultipleImagesAdvanced extends GetMultipleContents {
+		@NonNull
 		@Override
 		public Intent createIntent(Context context, String input) {
 			Intent i = super.createIntent(context, input);
 			putShowAdvancedExtra(i);
 			i.setType("image/*");
+			i.addFlags(FLAG_GRANT_READ_URI_PERMISSION);
 			if (SDK_INT >= 19)
 				i.putExtra(EXTRA_MIME_TYPES, getSupportedImageContentTypes());
 			return i;
@@ -67,6 +76,7 @@ public class ActivityLaunchers {
 
 	public static class RequestBluetoothDiscoverable
 			extends ActivityResultContract<Integer, Boolean> {
+		@NonNull
 		@Override
 		public Intent createIntent(Context context, Integer duration) {
 			Intent i = new Intent(ACTION_REQUEST_DISCOVERABLE);