在使用短信功能之前,必须设置权限,而且分为接收权限和发送权限:
<uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
标准的发送代码:
SmsManager manager = SmsManager.getDefault();//短信发送器 List<String> message = manager.divideMessage("手机IMSI码为:" + saveSubscriberId + " 的手机,SIM已被更换,更换的IMSI码为:" + subscriberId);//短信拆分 for (String msg : message) { manager.sendTextMessage(safenumber, null, msg, null, null);//发送每一条短信 }
发送SMS以及监控它的发送过程是否成功的经典示例:
String SEND_SMS_ACTION = "SENT_SMS_ACTION";
String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";
//创建senTIntent参数
Intent sentIntent = new Intent(SEND_SMS_ACTION);
PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, sentIntent, 0);
//创建deliveredIntent参数
Intent deliveredIntent = new Intent(DELIVERED_SMS_ACTION);
PendingIntent delivePI = PendingIntent.getBroadcast(getApplicationContext(), 0, deliveredIntent, 0);
//注册广播器
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
switch (getResultCode()) {
case Activity.RESULT_OK:
....
case RESULT_ERROR_GENERIC_FAILURE:
....
case RESULT_ERROR_RADIO_OFF:
....
case RESULT_ERROR_NULL_PDU:
....
}
}
},
new IntentFilter(SEND_SMS_ACTION));
//注册广播器
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
....
}
}
},
new IntentFilter(DELIVERED_SMS_ACTION));