Android发送短信
要使用手机短信服务,在AndroidManifest.xml中必须添加短信服务权限AndroidManifest.xml
<uses-permission android:name="android.permission.SEND_SMS"/><!--添加权限-->
package com.sms;
import java.util.List;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements
android.view.View.OnClickListener {
/** Called when the activity is first created. */
private EditText contact;
private EditText smsContent;
private Button commit;
private String strNo;
private String strSms;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
onClickListener();
}
public void initView() {
contact = (EditText) findViewById(R.id.contact);
smsContent = (EditText) findViewById(R.id.smsContent);
commit = (Button) findViewById(R.id.commit);
}
public void onClickListener() {
commit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.commit:
strNo = contact.getText().toString();
strSms = smsContent.getText().toString();
// TODO Auto-generated method stub
/*
* 在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager 之后应该用
* android.telephony.SmsManager;
*/
// 获取系统默认的短信管理器
SmsManager smsManager = SmsManager.getDefault();
PendingIntent sentIntent = PendingIntent.getBroadcast(
MainActivity.this, 0, new Intent(), 0);
// 如果字数超过70,需拆分成多条短信发送
// 按照每条短信最大字数来拆分短信
if (strSms.length() > 70) {
List<String> msgs = smsManager.divideMessage(strSms);
for (String msg : msgs) {
/*
* 发送短信
*
* smsManager.sendTextMessage(destinationAddress, scAddress,
* text, sentIntent, deliveryIntent)
*
* -- destinationAddress:目标电话号码
*
* -- scAddress:短信中心号码,测试可以不填
*
* -- text: 短信内容
*
* -- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 -->
* 后续处理 即,这个意图包装了短信发送状态的信息
*
* -- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 -->
* 返回对方是否收到这个信息 --> 后续处理
* 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。
*/
smsManager.sendTextMessage(strNo, null, msg, sentIntent,
null);
}
} else {
smsManager.sendTextMessage(strNo, null, strSms, sentIntent,
null);
}
Toast.makeText(MainActivity.this, "短信发送完成", Toast.LENGTH_LONG)
.show();
break;
}
}
}
补充:移动开发 , Android ,