【问题标题】:Android post image to Facebook commentAndroid 将图片发布到 Facebook 评论
【发布时间】:2017-12-26 13:31:03
【问题描述】:

这是我上一个问题的后续:Xamarin.Forms App return data to calling App

效果很好,我可以将图像分享到任何地方,但 Facebook cmets 除外。当我单击内容框上的相机时,可以选择应用程序,我可以选择图像,调用设置结果和完成,应用程序关闭并将数据发送到 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();

【问题讨论】:

  • 我知道图像的路径是正确的,我知道它包含在意图中,我已经在清单中设置了读写外部存储的权限。此代码适用于 Facebook、Instagram、Twitter、Messenger 和 WhatsApp,仅适用于 Facebook cmets。谢谢
  • 我无法复制,但这里有几个想法: 1. 您是否使用创建原始帖子的同一用户发表评论? 2.如果不是,该帖子是公开的吗?
  • 我可以在哪里通过手机对您的帖子发表评论?
  • 尝试使用手机上的其他应用来挑选图片。那一个会通过吗?
  • 测试链接肯定有帮助

标签: xamarin xamarin.android


【解决方案1】:

在下面使用:

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

【讨论】:

  • 正如我之前所说,这是我从最初的问题开始的,很高兴我的开始是正确的,遗憾的是我在尝试同时解决两个略有不同的问题时迷路了。再次感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
相关资源
最近更新 更多