2017-04-16 135 views
0

我的应用程序使用从在MainActivity调用默认的短信应用程序下面的代码:Xamarin.Android:如何从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); 
     } 

默认短信应用程序启动,但是当我按下后退按钮我只是关闭应用程序窗口或返回到MainActivity窗口。有人可以解释我在哪里犯了错误吗?

回答

0

我没有让你的代码工作,我认为它只适用于你有的一种消息应用程序。我会建议使用这种代码来调用SMS应用(更多讨论有关在这里:Sending SMS via an Intent and know if the SMS has been sent or not):

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应用程序将重新打开你的应用程序迅速按后退按钮。但是,如果用户在短信应用程序中做了其他事情,我的经验是它不会回到您的应用程序。我不认为你可以强制另一个应用程序总是回到你的应用程序。如果你不能接受你,我会建议你直接从你的应用程序发送短信。

+0

@hamalaviv,我的目标是通过手删除收到的短信,然后返回到我的应用程序。我的代码在Android 4.0.9下正常工作,但在Android 6.0下无法使用 – Hermann

相关问题