Marshmallow下的Xamarin Android分享意图

时间:2018-01-11 07:31:42

标签: android xamarin android-intent android-6.0-marshmallow file-sharing

在我的应用程序中,我尝试与Intent共享一个Image( Intent.ActionSend )。 对于保证访问,我使用 Fileprovider 来创建文件的Uri。 在Android Nougat下,我的代码可以,但 Marshmallow不是。它没有显示错误,但图像未发送到接收应用程序。 VisualStudio的输出也没有显示错误或类似的东西。

到目前为止,我无法在网上找到任何答案。 Marshmallow有什么问题?

public void SendPhoto(IEnumerable<string> photos, string text)
    {            
        var files = new List<Android.Net.Uri>();
        //creates for every photo an own ContentURI
        foreach (var path in photos)
        {
            var file = new Java.IO.File(path);                
            files.Add(FileProvider.GetUriForFile(Context, "com.testapp.fileprovider", file));
        }
        //Checks if Photolist are empty
        if (!files.Any())
            throw new Exception("Photos not found");

        Intent intent = new Intent(Intent.ActionSend);
        intent.SetFlags(ActivityFlags.GrantReadUriPermission);
        intent.SetType("image/jpeg");
        intent.PutExtra(Intent.ExtraSubject, "Subject");
        intent.PutExtra(Intent.ExtraStream, files.First());
        //creates the sharemessage
        var shareMessage = files.Count == 1 ? "Send photo from TestApp" : "Send photos from TestApp";
        //start Intent chooser
        Context.StartActivity(Intent.CreateChooser(intent, shareMessage));

    }

0 个答案:

没有答案