这次,我们做一个手机都有的功能——发短信,首先,既然是个小软件,新建项目的时候顺便图标也选为短信图标那个。首先我们还是先来实现页面布局,到activity_main.xml添加代码(我的默认是相对布局)
<TextView
android:id="@+id/tv_number"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="请输入手机号"/>
<EditText
android:id="@+id/ed_number"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_below="@id/tv_number"
android:inputType="number"/>
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ed_number"
android:text="请输入短信内容" />
<EditText
android:id="@+id/ed_content"
android:layout_width="match_parent"
android:layout_height="180px"
android:layout_below="@id/tv_content"
android:gravity="top"
/>
<Button
android:id="@+id/btn_send"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="发送短信"
android:layout_below="@id/ed_content"/>
效果如图:
页面布局好了,我们就该去实现功能了,到MainActivity.java编写代码(代码省略了导入的包)
public class MainActivity extends Activity implements android.view.View.OnClickListener
{
private EditText editnumber;
private EditText edcontent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editnumber=(EditText) findViewById(R.id.ed_number);
edcontent=(EditText) findViewById(R.id.ed_content);
Button button=(Button) findViewById(R.id.btn_send);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "send success", Toast.LENGTH_SHORT).show();
String number=editnumber.getText().toString();
String content=edcontent.getText().toString();
SmsManager smsManger = SmsManager.getDefault(); //短信管理器
smsManger.sendTextMessage(number, null, content, null, null);
}
}
我想你会对上面这行代码有疑问,我就来解释一下,一般其他几个都设为null
smsManger.sendTextMessage(number, null, content, null, null);
/* smsManger.sendTextMessage(
destinationAddress, //收件人的号码
scAddress, //短信中心号码,不理它(一般为空)
text, //短信内容
sentIntent, //如果发送成功,回调此广播,通知我们
deliveryIntent); //当对方接收成功,回调此广播*/
接下来跟拨制作号器一样,也是要设置权限的,到AndroidMainfest.xml添加发短信的权限
<uses-permission android:name="android.permission.SEND_SMS"/>
这里还是以两个模拟器来实验一下效果: