次に、私のコード:
注:送信すると成功しましたが、別のモバイルレシーバーではトリガーされません。そのため、SMS がいつ送信されたかだけはわかりますが、SMS がいつ別のエミュレーターに配信されたかはわかりません。
私はブラジル出身です。英語については申し訳ありません。まだまだ勉強中です(笑)
それで、あなたが私を助けてくれることを願っています。次に、私のコードを見ることができます。
私のコード:
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());
}
}
みんなありがとう。さよなら。