短信發送模式包括:
1.使用SMSManager發送短信,發送的短信不存於“信息”中。
2.使用ContentResolver發送短信,短信存放於“信息”中。(網傳的方法,實踐中未成功)
3.使用Intent發送短信,調用系統的“信息”程序發送。
打電話模式包括:
1.調用空的Dial拔號。
2.調用Dial並傳遞號碼。
3.直拔。
發送郵件包括:
1.發送普通郵件。
2.發送附件。
package lab.sodino.stm;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class STMAct extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.btnSmsMag))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
sendSms1();
Toast.makeText(STMAct.this, "已發送", Toast.LENGTH_SHORT)
.show();
}
});
((Button) findViewById(R.id.btnSmsInbox))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
sendSmsInbox();
Toast.makeText(STMAct.this, "已發送", Toast.LENGTH_SHORT)
.show();
}
});
((Button) findViewById(R.id.btnSmsIntent))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
sendSmsIntent();
Toast.makeText(STMAct.this, "已發送", Toast.LENGTH_SHORT)
.show();
}
});
((Button) findViewById(R.id.btnTelEmpty))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
telDialEmpty();
}
});
((Button) findViewById(R.id.btnTelPhone))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
telDialPhone();
}
});
((Button) findViewById(R.id.btnTelCall))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
telCall();
}
});
((Button) findViewById(R.id.btnMailSendto))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
mailSendto();
}
});
((Button) findViewById(R.id.btnMailSend))
.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
mailSend();
}
});
}
private void sendSms1() {
// 需要 android.permission.SEND_SMS
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage("10086", null, "1008611", null, null);
}
private void sendSmsInbox() {
// 需要 android.permission.READ_SMS與android.permission.WRITE_SMS,經測試發送失敗
ContentValues values = new ContentValues();
values.put("address", "10086");
values.put("body", "bylcx");
ContentResolver contentResolver = getContentResolver();
// 實驗中兩者都會在信息欄中保存所發的信息。
contentResolver.insert(Uri.parse("content://sms/sent"), values);
// contentResolver.insert(Uri.parse("content://sms/inbox"), values);
}
private void sendSmsIntent() {
// 不需要權限,跳轉到"信息"中。
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri
.parse("sms://"));
sendIntent.putExtra("address", "10086");
sendIntent.putExtra("sms_body", "bylcs");
startActivity(sendIntent);
}
private void telDialEmpty() {
// 不需要權限,跳轉到"拔號"中。
Intent callIntent = new Intent(Intent.ACTION_CALL_BUTTON);
startActivity(callIntent);
}
private void telDialPhone() {
// 不需要權限,跳轉到"拔號"中。
Intent callIntent = new Intent(Intent.ACTION_DIAL, Uri
.parse("tel:10086"));
startActivity(callIntent);
}
private void telCall() {
// 需要 android.permission.CALL_PHONE
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri
.parse("tel:10086"));
startActivity(callIntent);
}
private void mailSendto() {
// 需要 android.permission.SENDTO權限
Uri uri = Uri.parse("mailto:[email protected]");
Intent mailIntent = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(mailIntent);
}
private void mailSend() {
// 需要 android.permission.SEND權限
Intent mailIntent = new Intent(Intent.ACTION_SEND);
// 可以試下“plain/text”與“text/plain”的區別,嘿嘿
mailIntent.setType("plain/text");
String[] arrReceiver = { "[email protected]", "[email protected]" };
String[] arrCc = { "[email protected]", "[email protected]" };
String[] arrBcc = { "[email protected]", "[email protected]" };
String mailSubject = "MailSubject";
String mailBody = "Mail Sodino Test";
String attachPath = "file:///sdcard/UCDownloads/ATest.apk";
mailIntent.putExtra(Intent.EXTRA_EMAIL, arrReceiver);
mailIntent.putExtra(Intent.EXTRA_CC, arrCc);
mailIntent.putExtra(Intent.EXTRA_BCC, arrBcc);
mailIntent.putExtra(Intent.EXTRA_SUBJECT, mailSubject);
mailIntent.putExtra(Intent.EXTRA_TEXT, mailBody);
mailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(attachPath));
mailIntent.setType("audio/mp3");
startActivity(Intent.createChooser(mailIntent, "Mail Sending..."));
}
}
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:text="SMS"
android:textSize="30sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:background="#80808080">
android:text="SMSMag"
android:id="@+id/btnSmsMag"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
android:text="Inbox"
android:id="@+id/btnSmsInbox"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
android:text="Intent"
android:id="@+id/btnSmsIntent"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
android:text="TEL"
android:textSize="30sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:background="#80808080">
android:text="EmptyDial"
android:id="@+id/btnTelEmpty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
>
android:text="PhoneDial"
android:id="@+id/btnTelPhone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
>
android:text="Call"
android:id="@+id/btnTelCall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
>
android:text="MAIL"
android:textSize="30sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:background="#80808080">
android:text="SendTo"
android:id="@+id/btnMailSendto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
>
android:text="Send(Attach)"
android:id="@+id/btnMailSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
>