今天学的是短信发送功能。
首先是应用的界面:
界面的实现如下:
activity_sms.xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/input_number" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/number"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/context" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minLines="3"
android:id="@+id/context"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send"
android:id="@+id/bt_send"
/>
</LinearLayout>
string.xml文件
<resources>
<string name="app_name">短信发送器</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_sms">短信发送器</string>
<string name="input_number">请输入手机号码</string>
<string name="context">请输入短信内容</string>
<string name="send">发送</string>
</resources>
接下来就是按钮功能的实现
package com.example.sms;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.telephony.gsm.SmsManager;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SmsActivity extends Activity {
private Button bt_send = null;
private EditText et_number = null;
private EditText et_context = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);
bt_send = (Button) findViewById(R.id.bt_send);
et_number = (EditText) findViewById(R.id.number);
et_context = (EditText) findViewById(R.id.context);
bt_send.setOnClickListener(new buttonClickListener());
}
private final class buttonClickListener implements View.OnClickListener
{
public void onClick(View v) {
String str_number = et_number.getText().toString();
String str_context = et_context.getText().toString();
SmsManager manager = SmsManager.getDefault();
//由于短信的内容一般是有字数限制的,所以要调用divideMessage方法将超过字数的短信分成几条发送出去
//而divideMessage方法的返回类型为ArrayList类型,所以可以保存到ArrayList中
ArrayList<String> texts = manager.divideMessage(str_context);
for(String text:texts)
{
//第一个参数是要发送短信的目标地址,就是对方的号码。
//第二个参数为发送短信的中心地址,这里填null就可以。
//第三个参数为短信的内容
//第四个参数为发送短信的状态,是否发送成功
//第五个参数为对方是否接受到短信
manager.sendTextMessage(str_number, null, text, null, null);
}
//第一个参数为上下文对象
//第二个参数为显示的信息
//第三个参数为显示的时间,可以用常量来控制 LENGTH_LONG显示的时间长一点。LENGTH_SHORT显示的时间短一点
Toast.makeText(getApplicationContext(), "发送成功", Toast.LENGTH_LONG).show();
//也可以用下面的代码。由于Activity是继承自context,所以第一个参数也可以用SmsActivity
//Toast.makeText(SmsActivity.this, "发送成功", Toast.LENGTH_LONG).show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_sms, menu);
return true;
}
}