調用系統的發送短信界面,只需向系統發送壹個Intent,並附帶相關參數就可以了,下面以壹個demo說明。
類似下圖的界面
activity_main.xml
[html] view plaincopy
<RelativeLayout xmlns:android="/apk/res/android" ?
xmlns:tools="/tools" ?
android:layout_width="match_parent" ?
android:layout_height="match_parent" > ?
<Button ?
android:id="@+id/btn_send" ?
android:layout_width="wrap_content" ?
android:layout_height="wrap_content" ?
android:layout_alignParentRight="true" ?
android:layout_marginRight="@dimen/padding_small" ?
android:gravity="center" ?
android:paddingLeft="@dimen/padding_small" ?
android:paddingRight="@dimen/padding_small" ?
android:text="@string/btn_send" /> ?
<EditText ?
android:id="@+id/edit_phone_number" ?
android:layout_width="fill_parent" ?
android:layout_height="wrap_content" ?
android:layout_alignBottom="@id/btn_send" ?
android:layout_marginLeft="@dimen/padding_small" ?
android:layout_marginRight="@dimen/padding_small" ?
android:layout_toLeftOf="@id/btn_send" ?
android:hint="@string/edittext_hint" ?
android:inputType="phone" ?
android:paddingLeft="@dimen/padding_small" /> ?
</RelativeLayout> ?
然後在MainActivity中編寫相應的Java代碼就可以了,操作很簡單,在EditText中輸入號碼,然後點擊Send,就跳到系統發送短信界面,並且接收人壹欄裏填入號碼。相關的代碼如下:
獲取控件,響應Button的點擊事件:
[java] view plaincopy
@Override ?
public void onCreate(Bundle savedInstanceState) { ?
super.onCreate(savedInstanceState); ?
setContentView(R.layout.activity_main); ?
mEditText = (EditText) findViewById(R.id.edit_phone_number); ?
mButton = (Button) findViewById(R.id.btn_send); ?
mButton.setOnClickListener(new View.OnClickListener() { ?
@Override ?
public void onClick(View v) { ?
String phoneNumber = mEditText.getText().toString(); ?
if (!TextUtils.isEmpty(phoneNumber)) { ?
sendSmsWithNumber(MainActivity.this, phoneNumber); ?
} ?
} ?
}); ?
} ?
向指定號碼發送短信:
[java] view plaincopy
/**?
* 調用系統界面,給指定的號碼發送短信? * ? * @param context? * @param number? */ ?public void sendSmsWithNumber(Context context, String number) { ?
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:" + number)); ?
context.startActivity(sendIntent); ?
} ?
這樣點擊Send後,就會跳轉到系統短信界面了,並且接收人壹欄裏就是剛才妳填寫的號碼。
同理,要想調用系統發送短信界面後附加短信內容和以上是類似的,只需在Intent中附帶相關的參數就可以了。
[java] view plaincopy
/**?
* 調用系統界面,給指定的號碼發送短信,並附帶短信內容? * ? * @param context? * @param number? * @param body? */ ?public void sendSmsWithBody(Context context, String number, String body) { ?
Intent sendIntent = new Intent(Intent.ACTION_SENDTO); ?
sendIntent.setData(Uri.parse("smsto:" + number)); ?
sendIntent.putExtra("sms_body", body); ?
context.startActivity(sendIntent); ?
} ?