在Android Oreo上共享文件

时间:2018-10-03 20:21:04

标签: xamarin xamarin.forms xamarin.android

我当前正在开发一个应用程序,并且试图共享文件,但是我在论坛中找到的解决方案无法正常工作。代码看起来像这样:

public Task Show(string title, string subject, string filePath,string contentType)
    {
        var intent = new Intent(Intent.ActionSend);



        if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.O) { 

            Java.IO.File file = new Java.IO.File("content://" + filePath);
            Android.Net.Uri androidNUri = FileProvider.GetUriForFile(context, "my.app.fileprovider", file);
            intent.PutExtra(Intent.ExtraStream, androidNUri);
        }
        else
        {
            var uri = Android.Net.Uri.Parse("file://" + filePath);
            intent.PutExtra(Intent.ExtraStream, uri);
        }
        intent.PutExtra(Intent.ExtraText,  string.Empty);
        intent.PutExtra(Intent.ExtraSubject, subject ?? string.Empty);
        intent.SetType(contentType);
    var chooserIntent = Intent.CreateChooser(intent, title ?? string.Empty);
        chooserIntent.SetFlags(ActivityFlags.ClearTop);
        chooserIntent.SetFlags(ActivityFlags.NewTask);
        chooserIntent.SetFlags(ActivityFlags.GrantReadUriPermission);
        context.StartActivity(chooserIntent);

        return Task.FromResult(true);
    }

}

文件提供程序似乎工作正常,并且在以前的版本中也可以工作,但是当我尝试发送电子邮件时,它无法将文件发送给它。 预先感谢您的帮助。

0 个答案:

没有答案