我认为应用程序图标是在您的应用程序专用的目录中创建的,因此其他应用程序无法获取它.

您需要将其保存在其他应用程序可以访问的位置,然后从该位置共享它,如下所示:

public void Share (string title, string content)

{

if (string.IsNullOrEmpty (title) || string.IsNullOrEmpty (content))

return;

Bitmap b = BitmapFactory.DecodeResource(Resources,Resource.Drawable.icon_120);

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, content);

sharingIntent.PutExtra (Intent.ExtraStream, imageUri);

sharingIntent.AddFlags (ActivityFlags.GrantReadUriPermission);

StartActivity (Intent.CreateChooser (sharingIntent, title));

}

还要为您的应用添加ReadExternalStorage和WriteExternalStorage权限.

如果有效,请告诉我.

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐