2017-06-01 104 views
0

我想为用户填充SMS意向,然后启动意图,发送短信后,返回我的应用程序继续执行代码。所以到目前为止我用这个来设置意图:短信发送后返回onActivityResult

Uri uri = Uri.parse("smsto:" + cellNumberEditText.getText().toString()); 
Intent smsIntent = new Intent(Intent.ACTION_SENDTO, uri); 
smsIntent.putExtra("sms_body", smsMessageEditText.getText().toString()); 
smsIntent.putExtra("exit_on_sent", true); 
startActivityForResult(smsIntent,1); 

注意我额外exit_on_sent参数添加到意图。

然后关闭当然,我赶上onActivityResult

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == 1) 
    { 
     //Do some post sending work 
    } 
} 

的问题,调试完毕后,我注意到,只要意图推出,立即onActivityResult火灾,而不是意图后关闭。此外,即使设置了参数,SMS应用程序在发送后也不会关闭。我甚至在我的Manifest.xml中添加了android:launchMode="singleInstance"。我错过了什么?

+0

希望这一个会帮助你[链接](https://stackoverflow.com/a/26091732/3632609) – Moorthy

回答

0

您应该在请求的活动中添加setResult(Activity.RESULT_OK, data);finish();。最新返回到请求者活动。

+0

我该怎么做?我推出的SMS意图是从我身边关闭的,我无法更改它使用的代码?如果我发起了一个我自己创建的活动,那将是可能的 –

+0

我找到了这种方式: 'String number =“12346556”; //你想发送短信的号码 startActivity(new Intent(Intent.ACTION_VIEW,Uri.fromParts(“sms”,number,null))); ' – Guille