2016-12-28 11 views
0

私は画像を共有したいです。共有オプションには、アプリのxyzが含まれている必要があります。たとえば、画像を開いて、それを共有するために、Instagram、Facebook、Twitter、Eメールなどのオプションを共有するオプションがあります。私のアプリは共有オプションにする必要があります。 xamarin.forms(iosとandroidの両方)でどのようにすればいいですか?xamarin.formsで自分のアプリを使って画像を共有する

答えて

1

私はアプリのアイコンがあなたのアプリにプライベートなディレクトリに作成されていると思うので、他のアプリはそれを手に入れることができません。

他のアプリは、このようにその場所からいくつかのことを、それを共有し、それをアクセスできる場所あなたはどこかにそれを保存する必要があります:

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権限を追加します。

それが動作するかどうかを教えてください。

+0

私はそれと正反対にしたいです。 @sumeet –

+0

共有オプションで自分のアプリが欲しいです。 –

関連する問題