2017-06-01 22 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