Essentials icon indicating copy to clipboard operation
Essentials copied to clipboard

[Bug] File Share java.lang.SecurityException

Open pulmuone opened this issue 3 years ago • 0 comments

Description

File Share java.lang.SecurityException

                await Share.RequestAsync(new ShareFileRequest
                {
                    Title = SelectedHeader.Title,
                    File = new ShareFile(path)
                });

[DatabaseUtils] Writing exception to parcel [DatabaseUtils] java.lang.SecurityException: Permission Denial: reading xamarin.essentials.fileProvider uri content://.fileProvider/internal_cache/%EC%9E%AC%EA%B3%A0%EC%A1%B0%EC%82%AC_2022-04-08.xlsx from pid=9048, uid=1000 requires the provider be exported, or grantUriPermission() [DatabaseUtils] at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:912) [DatabaseUtils] at android.content.ContentProvider.semEnforceReadPermission(ContentProvider.java:830) [DatabaseUtils] at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:708) [DatabaseUtils] at android.content.ContentProvider$Transport.query(ContentProvider.java:247) [DatabaseUtils] at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107) [DatabaseUtils] at android.os.Binder.execTransactInternal(Binder.java:1215) [DatabaseUtils] at android.os.Binder.execTransact(Binder.java:1179) [DatabaseUtils] Writing exception to parcel [DatabaseUtils] java.lang.SecurityException: Permission Denial: reading xamarin.essentials.fileProvider uri content://.fileProvider/internal_cache/%EC%9E%AC%EA%B3%A0%EC%A1%B0%EC%82%AC_2022-04-08.xlsx from pid=9048, uid=1000 requires the provider be exported, or grantUriPermission() [DatabaseUtils] at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:912) [DatabaseUtils] at android.content.ContentProvider.semEnforceReadPermission(ContentProvider.java:830) [DatabaseUtils] at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:708) [DatabaseUtils] at android.content.ContentProvider$Transport.query(ContentProvider.java:247) [DatabaseUtils] at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:107) [DatabaseUtils] at android.content.ContentProviderNative.onTransact(Con04-08 08:10:55.428 E/DatabaseUtils( 8846): at android.os.Binder.execTransactInternal(Binder.java:1215) [DatabaseUtils] at android.os.Binder.execTransact(Binder.java:1179)

        //Android 11 
        IList<ResolveInfo> resInfoList = Android.App.Application.Context.PackageManager.QueryIntentActivities(intentShareFile, PackageInfoFlags.MatchDefaultOnly);
        foreach (ResolveInfo resInfo in resInfoList)
        {
            string packageName = resInfo.ActivityInfo.PackageName;
            Android.App.Application.Context.GrantUriPermission(packageName, uri, ActivityFlags.GrantReadUriPermission);
        }

Steps to Reproduce

Expected Behavior

Actual Behavior

Basic Information

  • Version with issue:
  • Last known good version:
  • IDE: Visual Studio 2022
  • Platform Target Frameworks:
    • Android: Api 31
  • Android Support Library Version:
  • Nuget Packages: Xamarin.Essentials 1.7.2
  • Affected Devices: Samsung SM-G986N

Screenshots

Reproduction Link

pulmuone avatar Apr 08 '22 02:04 pulmuone