Android 发短信

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

manifest.xml中要加的权限如上。


colors.xml中加:

<color name="white">#FFFFFF</color>

main.xml

<?xml version="1.0" encoding="utf-8"?><!-- XML的版本以及编码方式 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@color/white"
    android:gravity="bottom"><!-- 添加一个垂直的线性布局 -->
    <TextView 
       android:text="@string/tel"
       android:id="@+id/TextView02" 
       android:textSize="20dip"
       android:textStyle="bold"
       android:textColor="@color/black"
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"
       android:paddingLeft="5dip"/><!-- 添加一个TextView控件 -->
    <EditText 
       android:text="@string/telno"
       android:id="@+id/EditText02"        
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"/><!--  添加一个EditText控件 -->
    <TextView 
       android:text="@string/sms"
       android:id="@+id/TextView01" 
       android:layout_width="wrap_content" 
       android:textSize="20dip"
       android:textStyle="bold"       
       android:textColor="@color/black"
       android:paddingLeft="5dip"
       android:layout_height="wrap_content"/><!-- 添加一个TextView控件 -->
    <EditText 
       android:text="@string/smsnr"
       android:id="@+id/EditText01" 
       android:layout_width="fill_parent" 
       android:singleLine="false"
       android:gravity="top|left"
       android:layout_height="100dip"/><!--  添加一个EditText控件 -->
    <Button 
       android:text="@string/dial"
       android:id="@+id/Button01" 
       android:textSize="20dip"
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"/><!--  添加一个Button控件 -->
</LinearLayout>

MainActivity.java

package com.example.MainActivity;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.PhoneNumberUtils;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button bdial=(Button)this.findViewById(R.id.Button01);
        bdial.setOnClickListener(// 为发送按钮添加监听器
                //OnClickListener为View的内部接口,其实现者负责监听鼠标点击事件
                new View.OnClickListener(){ 
                	public void onClick(View v){ 
                		//获取输入的电话号码
                		EditText etTel=(EditText)findViewById(R.id.EditText02);
                		String telStr=etTel.getText().toString();
                		//获取输入的短信内容
                		EditText etSms=(EditText)findViewById(R.id.EditText01);
                		String smsStr=etSms.getText().toString();
                		//判断号码字符串是否合法
                		if(PhoneNumberUtils.isGlobalPhoneNumber(telStr)){//合法则发送短信
	                		 v.setEnabled(false);//短信发送完成前将发送按钮设置为不可用
	                		 sendSMS(telStr,smsStr,v);
                		}
                		else{//不合法则提示
                			Toast.makeText(
                				 Sample_11_1.this, //上下文
                				 "电话号码不符合格式!!!", //提示内容
                				 5000						//信息显示时间
                				 ).show();                		 
                		}           	 
                 } 
        }); 
    }
    //自己开发的直接发送短信的方法
    private void sendSMS(String telNo,String smsStr,View v){
    	PendingIntent pi=
    		PendingIntent.getActivity(this, 0, new Intent(this,Sample_11_1.class), 0);
    	SmsManager sms=SmsManager.getDefault();
    	sms.sendTextMessage(telNo, null, smsStr, pi, null);
    	//短信发送成功给予提示
    	Toast.makeText(
    			Sample_11_1.this, //上下文
				 "恭喜你,短信发送成功!", //提示内容
				 5000						//信息显示时间
				 ).show(); 
    	v.setEnabled(true);//短信发送完成后恢复发送按钮的可用状态
    }
}


查询发送状态:

public class MyBroadcastReceiver extends BroadcastReceiver{//自定义的BroadcastReceiver
		@Override
		public void onReceive(Context context, Intent intent) {//重写的onReceive方法
			switch(getResultCode()){
			case Activity.RESULT_OK://发送成功
				Toast.makeText(context, "发送成功", Toast.LENGTH_LONG).show();//提示
				break;
			case SmsManager.RESULT_ERROR_GENERIC_FAILURE://发送失败
				Toast.makeText(context, "发送失败", Toast.LENGTH_LONG).show();//提示
				break;
			default://其他情况
				Toast.makeText(context, "未知", Toast.LENGTH_LONG).show();//提示
				break;
			}
		}
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值