我的应用程序使用以下代码来调用MainActivity的默认SMS应用程序:
if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
{
string defaultSmsPackageName = Telephony.Sms.GetDefaultSmsPackage(this);
Intent intent = new Intent(Intent.ActionMain);
intent.AddCategory(Intent.CategoryDefault);
intent.SetType("vnd.android-dir/mms-sms");
if (defaultSmsPackageName != null)
intent.SetPackage(defaultSmsPackageName);
StartActivity(intent);
}
else
{
Intent intent = new Intent(Intent.ActionMain);
intent.AddCategory(Intent.CategoryDefault);
intent.SetType("vnd.android-dir/mms-sms");
StartActivity(intent);
}
默认的SMS应用程序启动了,但是当我按下后面按钮时,我只是关闭应用程序窗口或返回MainActivity窗口。有人可以向我解释我犯错误吗?
我没有让您的代码工作,我认为它仅适用于您拥有的一种消息传递应用程序。我建议使用这种代码调用SMS应用程序(在此处进行更多讨论:通过意图发送SMS并知道SMS是否已发送(:
Intent intent = new Intent(Intent.ActionView);
intent.SetData(Android.Net.Uri.Parse("smsto:" + phoneNumber));
intent.PutExtra("address", phoneNumber);
intent.PutExtra("sms_body", messageBody);
intent.PutExtra("exit_on_sent", true);
StartActivity(intent);
使用此代码,在SMS应用程序中立即按下后按钮将重新打开您的应用程序。但是,如果用户在SMS应用程序中执行其他操作,我的经验是它不会返回您的应用程序。我认为您不能强迫其他应用程序始终返回您的应用程序。如果您不能接受,我建议您直接从您的应用程序发送SMS。