Browse Source

Android: Widen ContentSharer permissions to work with Google Drive

While Google Drive seemingly isn't trying to access URI's that aren't an
exact match, without the presence of FLAG_GRANT_PREFIX_URI_PERMISSION,
sharing files with Google Drive will silently fail.
develop
attila 2 years ago
parent
commit
a8c114b570
1 changed files with 12 additions and 2 deletions
  1. +12
    -2
      modules/juce_gui_basics/native/juce_ContentSharer_android.cpp

+ 12
- 2
modules/juce_gui_basics/native/juce_ContentSharer_android.cpp View File

@@ -274,8 +274,18 @@ public:
AndroidIntent.setType, AndroidIntent.setType,
javaString (getCommonMimeType (mimeTypes)).get()); javaString (getCommonMimeType (mimeTypes)).get());
constexpr int grantReadPermission = 1;
env->CallObjectMethod (intent, AndroidIntent.setFlags, grantReadPermission);
const auto permissions = [&]
{
constexpr int grantReadUriPermission = 1;
constexpr int grantPrefixUriPermission = 128;
if (getAndroidSDKVersion() < 21)
return grantReadUriPermission;
return grantReadUriPermission | grantPrefixUriPermission;
};
env->CallObjectMethod (intent, AndroidIntent.setFlags, permissions);
env->CallObjectMethod (intent, env->CallObjectMethod (intent,
AndroidIntent.putParcelableArrayListExtra, AndroidIntent.putParcelableArrayListExtra,


Loading…
Cancel
Save