diff --git a/packages/app-mobile/android/app/src/main/AndroidManifest.xml b/packages/app-mobile/android/app/src/main/AndroidManifest.xml index e829713f78..36828c00dc 100644 --- a/packages/app-mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/app-mobile/android/app/src/main/AndroidManifest.xml @@ -8,6 +8,8 @@ + + diff --git a/packages/app-mobile/utils/shareHandler.ts b/packages/app-mobile/utils/shareHandler.ts index b66acecb82..5947fc6e4f 100644 --- a/packages/app-mobile/utils/shareHandler.ts +++ b/packages/app-mobile/utils/shareHandler.ts @@ -15,7 +15,11 @@ export default async (sharedData: SharedData, folderId: string, dispatch: Functi if (Platform.OS === 'android') { const response = await checkPermissions(PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE); - if (response !== PermissionsAndroid.RESULTS.GRANTED) { + // Note that if the permission is NEVER_ASK_AGAIN, it might still + // work because of the way Android permissions work after Android + // 10. So it means in that case we give it a try anyway. + // https://stackoverflow.com/a/73630987/561309 + if (response === PermissionsAndroid.RESULTS.DENIED) { ToastAndroid.show('Cannot receive shared data - permission denied', ToastAndroid.SHORT); ShareExtension.close(); return;