0

次に、私のコード:

注:送信すると成功しましたが、別のモバイルレシーバーではトリガーされません。そのため、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());
        }

    }

みんなありがとう。さよなら。

4

1 に答える 1

0

インテント フィルタのアクションが間違っている可能性があります。このサイトによると、アクション名は SMS_RECEIVED です。

于 2013-05-24T14:06:14.950 に答える