0

接下来,我的代码:

注意:我发送时成功,但在另一个移动接收器时不触发。所以,我只知道我的短信何时发送,但我永远不知道我的短信何时在另一个模拟器上发送。

我来自巴西,对英语很抱歉。我还在努力学习,笑...

所以,我希望你能帮助我,接下来你可以看到我的代码。

我的代码:

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());
        }

    }

感谢大家所做的一切。再见。

4

1 回答 1

0

看起来您的意图过滤器可能有错误的操作。根据这个站点,动作名称是 SMS_RECEIVED。

于 2013-05-24T14:06:14.950 回答