Android后台发送短信

配置权限:

 <!-- 发送短信的权限 -->
    <uses-permission android:name="android.permission.SEND_SMS" />

功能代码:

如果需要监听回执的的话就需要广播

/**
 * 短信是否发送成功
  * @author hsh
 *
  */
public class SendBroadcast  extends BroadcastReceiver{


@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
//判断短信是否发送成功
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(context, "短信发送成功", Toast.LENGTH_LONG).show() ;
break ;
default:
Toast.makeText(context, "短信发送失败", Toast.LENGTH_LONG).show() ;
break ;
}
}
}

  /**
  短信是否被接收
 * @author
hsh
  *
  */
public class ReceivedBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
//对方
是否成功接收到短信
Toast.makeText(context, "对方接收成功", Toast.LENGTH_LONG).show() ;
}
}
     

//AndroidManifest.xml

<!-- 监听短信是否发送成功 -->
        <receiver android:name="com.prs.application.o2o.dw.app.android.order.broadcast.SendBroadcast"  >
            <intent-filter>
                <action android:name="sendmessage" />
            </intent-filter>
        </receiver>
        
        <receiver android:name="com.prs.application.o2o.dw.app.android.order.broadcast.ReceivedBroadcast"  >
      <intent-filter>
         <action android:name="receivemessage" />
      </intent-filter>       
        </receiver>



//发送短信代码

String sentStr = "sendmessage" ;
String receiveStr = "receivemessage" ;

String str = "这是后台发送的短信";

SmsManager sms = SmsManager.getDefault();

Intent sent_intent = new Intent(sentStr) ;
PendingIntent sentIntent = PendingIntent.getBroadcast(context, 0, sent_intent, 0) ;

Intent delivery_intent = new Intent(receiveStr) ;

PendingIntent deliveryIntent = PendingIntent.getBroadcast(context, 0, delivery_intent, 0) ;

//发送短文本

//sms.sendTextMessage( “接受者电话  ”," 发送者电话","发送的内容",发送是否成功的回执,接收是否成功的回执);

//这是不需要回执就填为null
//sms.sendTextMessage("10086", null, "发送的内容", null,null);

//需要回执

sms.sendTextMessage("10086", null, "发送的内容", sentIntent ,deliveryIntent);

//发送长文本(需要回执)

//因为sendMultipartTextMessage的回执需要的是arrayList集合,所以就转换成list

ArrayList<PendingIntent> sents = new ArrayList<PendingIntent>();

sents.add(sentIntent);

ArrayList<PendingIntent> deliverys = new ArrayList<PendingIntent>();

deliverys.add(deliveryIntent);

ArrayList<String> list = sms.divideMessage(str) ;

sms.sendMultipartTextMessage("10086", null, list, sents , deliverys ) ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值