Android 手机发送短信

参照网上的例子,做了一个手机发送短信的app。

有两种发送方法:第一种方法测试没有信息的发送记录,第二种调用的sms的Activity还要自行操作。

首先是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="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/main_title" />

    <EditText
        android:id="@+id/phone"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/main_phone"
        android:inputType="phone" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/main_text" />

    <EditText
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <Button
            android:id="@+id/send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/main_send" />

        <Button
            android:id="@+id/send2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/main_send" />
    </LinearLayout>


</LinearLayout>

然后是strings.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">SendText</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="main_title">发送短信</string>
    <string name="main_phone">请输入电话号码</string>
    <string name="main_text">请输入内容</string>
    <string name="main_send">发送</string>
    <string name="main_send_finish">发送完成</string>

</resources>

MainActivity的代码
package cn.yzy.sendtext;

import java.util.List;

import android.net.Uri;
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
	private EditText phone;
	private EditText text;
	private Button send;
	private Button send2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		phone = (EditText) findViewById(R.id.phone);
		text = (EditText) findViewById(R.id.text);
		send = (Button) findViewById(R.id.send);
		send2 = (Button) findViewById(R.id.send2);

		send.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				String phone_number = phone.getText().toString().trim();
				String sms_content = text.getText().toString().trim();
				if (phone_number.equals("")) {
					Toast.makeText(MainActivity.this, R.string.main_phone,
							Toast.LENGTH_LONG).show();
				} else {
					SmsManager smsManager = SmsManager.getDefault();
					if (sms_content.length() > 70) {
						List<String> contents = smsManager
								.divideMessage(sms_content);
						for (String sms : contents) {
							smsManager.sendTextMessage(phone_number, null,
									sms_content, null, null);

						}
					} else {
						smsManager.sendTextMessage(phone_number, null,
								sms_content, null, null);

					}
					Toast.makeText(MainActivity.this,
							R.string.main_send_finish, Toast.LENGTH_LONG)
							.show();
				}

			}
		});

		send2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				String phone_number = phone.getText().toString().trim();
				String sms_content = text.getText().toString().trim();

				Uri uri = Uri.parse("smsto://" + phone_number);
				Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
				intent.putExtra("sms_body", "send detail");
				startActivity(intent);
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

记得加发送短信的权限

<uses-permission android:name="android.permission.SEND_SMS" />


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于大大大洋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值