短信发送后返回onActivityResult

Posted

技术标签:

【中文标题】短信发送后返回onActivityResult【英文标题】:Return to onActivityResult after SMS send 【发布时间】:2017-11-03 02:25:11 【问题描述】:

我想为用户填充 SMS Intent,然后启动 Intent 并在 SMS 发送后返回我的应用程序以继续执行代码。到目前为止,我使用它来设置 Intent:

 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);

注意,我在意图中添加了 Extra 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
    

问题是,在调试之后,我注意到一旦 Intent 启动,onActivityResult 就会立即触发,而不是在 Intent 关闭后触发。此外,即使设置了参数,短信应用程序在发送后也不会关闭。我什至在我的 Manifest.xml 中添加了android:launchMode="singleInstance"。我错过了什么?

【问题讨论】:

希望这个对你有帮助link 【参考方案1】:

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

【讨论】:

我该怎么做?我启动的 SMS 意图已从我这边关闭,我无法更改它使用的代码?如果我发起了一项我自己创建的活动,那将是可能的 我是这样找到的:String number = "12346556"; // The number on which you want to send SMS startActivity(new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", number, null)));

以上是关于短信发送后返回onActivityResult的主要内容,如果未能解决你的问题,请参考以下文章

从图库或相机返回后不调用 onActivityResult

怎么短信验证码轰炸别人

从另一个 Activity 返回的错误 requestCode onActivityResult

开通阿里云短信服务

开通阿里云短信服务

开通阿里云短信服务