Я пытаюсь отправить MMS с несколькими вложениями, текстом и номерами телефонов с помощью действия ActionSendMultiple. Следующий код успешно прикрепляет несколько изображений и текста, но он не заполняет номер телефона на устройствах Android 9 и 10 при выборе приложения для сообщений.
var contentUri = FileProvider.GetUriForFile(Xamarin.Forms.Forms.Context.ApplicationContext, ApplicationContext.PackageName + ".fileprovider", file1);
var sendIntent = new Intent(Intent.ActionSendMultiple);
var uris = new List<Android.Net.Uri>();
uris.Add(contentUri);
sendIntent.AddFlags(ActivityFlags.NewTask);//Intent.FLAG_ACTIVITY_NEW_TASK);
sendIntent.AddFlags(ActivityFlags.GrantReadUriPermission);
sendIntent.AddFlags(ActivityFlags.NoHistory);
sendIntent.SetData(Android.Net.Uri.Parse("smsto:"));
sendIntent.PutExtra(Intent.ExtraPhoneNumber, new string[] { phoneNumber });
sendIntent.PutExtra(Intent.ExtraText, msgBody);
sendIntent.PutExtra("address", phoneNumber);
sendIntent.PutExtra("sms_body", msgBody);
if (businessCard != null)
{
var bitmap = BitmapFactory.DecodeByteArray(businessCard, 0, businessCard.Length);
if (bitmap != null)
{
//SaveBitmapToFile(bitmap);
var bPath = bitmap.SaveAndAddToGallery(Guid.NewGuid().ToString() + ".jpeg", this, false, false, 50);
// Sending mms code
var bFile = new Java.IO.File(bPath);
//var uri = Android.Net.Uri.FromFile(file1);
var bContentUri = FileProvider.GetUriForFile(Xamarin.Forms.Forms.Context.ApplicationContext, ApplicationContext.PackageName + ".fileprovider", bFile)
uris.Add(bContentUri);
}
}
sendIntent.PutParcelableArrayListExtra(Intent.ExtraStream, uris.ToArray());
sendIntent.SetType("image/*");
var chooserIntent = Intent.CreateChooser(sendIntent, "Send");
chooserIntent.AddFlags(ActivityFlags.NewTask);
Android.App.Application.Context.StartActivity(chooserIntent);