功能
在eclipse中編寫代碼,完成一個APP,實現功能是,輸入一個目標手機號和短信內容,點擊發送鍵能夠將其內容發送出去。如果英文超過160,中文包含標點超過70,則對短信內容進行拆分。
代碼目錄結構:
詳細代碼如下:
Activity_main.xml中的代碼如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入號碼"
android:inputType="phone"
/>
<EditText
android:id="@+id/et_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="5"
android:hint="請輸入內容"
android:textSize="18sp"
android:gravity="top"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="發送"
android:layout_gravity="center"
android:onClick="send"
/>
</LinearLayout>
MainActivity.java中的代碼如下:
package com.example.messageSend;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// 當按鈕被按下時,此方法會被調用
public void send(View v) {
EditText et_phone = (EditText) findViewById(R.id.et_phone);
EditText et_content = (EditText) findViewById(R.id.et_content);
String phone = et_phone.getText().toString();
String content = et_content.getText().toString();
// 使用發送短信的api
SmsManager sm = SmsManager.getDefault();
// 拆分場短信
ArrayList<String> smss = sm.divideMessage(content);
for (String string : smss) {
// 對方號碼 、短信服務中心號碼
sm.sendTextMessage(phone, null, string, null, null);
}
}
}
測試結果如下: