接下来,我的代码:
注意:我发送时成功,但在另一个移动接收器时不触发。所以,我只知道我的短信何时发送,但我永远不知道我的短信何时在另一个模拟器上发送。
我来自巴西,对英语很抱歉。我还在努力学习,笑...
所以,我希望你能帮助我,接下来你可以看到我的代码。
我的代码:
private static final String SENT = "SMS_SENT";
private static final String DELIVERED = "SMS_DELIVERED";
private void enviaMensagem(String numero, String texto, int id){
try{
ID_SMS = id;
PendingIntent sendPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch(getResultCode()){
case Activity.RESULT_OK: atualizaStatus("Mensagem Enviada", "envio", ID_SMS);break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE: atualizaStatus("Erro no envio da mensagem", "envio", ID_SMS); break;
case SmsManager.RESULT_ERROR_NO_SERVICE: atualizaStatus("Sem serviço", "envio", ID_SMS); break;
case SmsManager.RESULT_ERROR_NULL_PDU: atualizaStatus("ErroO de PDU", "envio", ID_SMS); break;
}
}
}, new IntentFilter(SENT));
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch(getResultCode()){
case Activity.RESULT_OK:atualizaStatus("Mensagem entregue", "recebimento", ID_SMS);break;
case Activity.RESULT_CANCELED:atualizaStatus("Mensagem não entregue", "recebimento", ID_SMS);break;
}
}
}, new IntentFilter(DELIVERED));
sMessage = SmsManager.getDefault();
sMessage.sendTextMessage(numero, null, texto, sendPI, deliveredPI);
txtStatus.setTextColor(Color.GREEN);
txtStatus.setText("Mensagem enviada.");
}
catch(Exception ex){
txtStatus.setTextColor(Color.BLUE);
txtStatus.setText(ex.getMessage());
}
}
感谢大家所做的一切。再见。