發送短信:
想要發送和接收短信,首先要在AndroidManifest.xml裏面配置以下權限:
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
方法一:調用系統短信界面發送短信
1.不指定收件人,但是指定短信內容。
要想調用系統發送短信界面後附加短信內容,只需在Intent中附帶相關的參數就可以了。
Uri smsToUri = Uri.parse("smsto:");
Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri);
//smsBody :短信內容
intent.putExtra("sms_body", smsBody);
startActivity(intent);
2.指定收件人,但不指定短信內容。
//phone :收件人
Uri smsToUri = Uri.parse("smsto:"+phone);
Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri);
startActivity(intent);
或者:
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("smsto:" + number));
startActivity(sendIntent)
3.同時指定收件人和短信內容。
//number :收件人
Uri smsToUri = Uri.parse("smsto:" + number);
Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri);
//smsBody :短信內容
intent.putExtra("sms_body", smsBody);
startActivity(intent);
或者
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("smsto:" + number));
sendIntent.putExtra("sms_body", body);
startActivity(sendIntent);
方法二:不調用系統短信界面直接發短信。
SmsManager smsMgr = SmsManager.getDefault();
smsMgr.sendTextMessage(address, null, message, null, null);
其中參數說明:
sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)
destinationAddress 發送短信的地址(也就是號碼)
scAddress 短信服務中心,如果爲null,就是用當前默認的短信服務中心
text 短信內容
sentIntent 如果不爲null,當短信發送成功或者失敗時,這個PendingIntent會被廣播出去
成功的結果代碼是Activity.RESULT_OK,
或者下面這些錯誤之一 :RESULT_ERROR_GENERIC_FAILURE,RESULT_ERROR_RADIO_OFF,RESULT_ERROR_NULL_PDU等
通俗點說: 發送 -->中國移動 --> 中國移動發送失敗 --> 返回發送成功或失敗信號
--> 後續處理 即,這個意圖包裝了短信發送狀態的信息
deliveryIntent 如果不爲null,當這個短信發送到接收者那裏,這個PendtingIntent會被廣播
狀態報告生成的pdu(指對等層次之間傳遞的數據單位)會拓展到數據("pdu")
通俗點就是:發送 -->中國電信 --> 中國電信發送成功 --> 返回對方是否收到這個信息 --> 後續處理
即:這個意圖包裝了短信是否被對方收到的狀態信息(供應商已經發送成功,但是對方沒有收到)。
Uri uri = Uri.parse("mailto:[email protected]");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(it);
2.
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_EMAIL, "[email protected]");
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.setType("text/plain");
startActivity(Intent.createChooser(it, "Choose Email Client"));
Intent it=new Intent(Intent.ACTION_SEND);
String[] tos={"[email protected]"};
String[] ccs={"[email protected]"};
it.putExtra(Intent.EXTRA_EMAIL, tos);
it.putExtra(Intent.EXTRA_CC, ccs);
it.putExtra(Intent.EXTRA_TEXT, "The email body text");
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");
it.setType("message/rfc822");
startActivity(Intent.createChooser(it, "Choose Email Client"));