Android帖子图片到Facebook评论

时间:2017-07-20 17:41:49

标签: xamarin xamarin.android

这是我之前提问的后续问题:Xamarin.Forms App return data to calling App

完美无缺,我可以将图像分享到任何地方,除了Facebook评论。当我点击内容框上的相机可以选择应用程序时,我可以选择图像,调用设置结果和完成,应用程序关闭并将数据发送到Facebook,然后我得到错误:图像无法上传,请再试一次?

我发现在发布状态或评论之间找不到任何根本区别,所以我猜测它很微妙。关于如何改变我正确发布的意图的任何想法? screenshot of error as shown in Facebook

添加完整性:

Bitmap b = null;
string url;
if (!string.IsNullOrEmpty(this.saleItems[i].ImageUrl))
{
    url = this.saleItems[i].ImageUrl;
}
else
{
    url = await FileHelper.GetLocalFilePathAsync(this.saleItems[i].Id);
}
//download
using (var webClient = new WebClient())
{
    var imageBytes = webClient.DownloadData(url);
    if (imageBytes != null && imageBytes.Length > 0)
    {
        b = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
    }
}
//set local path
var tempFilename = "test.png";
var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
var filePath = System.IO.Path.Combine(sdCardPath, tempFilename);
using (var os = new FileStream(filePath, FileMode.Create))
{
    b.Compress(Bitmap.CompressFormat.Png, 100, os);
}
b.Dispose();

var imageUri = Android.Net.Uri.Parse($"file://{sdCardPath}/{tempFilename}");

var sharingIntent = new Intent();
sharingIntent.SetAction(Intent.ActionSend);
sharingIntent.SetType("image/*");
sharingIntent.PutExtra(Intent.ExtraText, "some txt content");
sharingIntent.PutExtra(Intent.ExtraStream, imageUri);
sharingIntent.AddFlags(ActivityFlags.GrantReadUriPermission);

//await SaleItemDataService.Instance.BuySaleItemAsync(this.saleItem);

SetResult(Result.Ok, sharingIntent);
Finish();

This is a capture of the local stack when the intent is created, just before it does SetResult() and Finish()

1 个答案:

答案 0 :(得分:1)

使用以下:

        Intent sharingIntent = new Intent();
        string imageUri = "file://" + requestedUri;
        sharingIntent.SetData(Android.Net.Uri.Parse(imageUri));