Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在接收sms时创建警报对话框_Android_Sms_Android Alertdialog - Fatal编程技术网

Android 在接收sms时创建警报对话框

Android 在接收sms时创建警报对话框,android,sms,android-alertdialog,Android,Sms,Android Alertdialog,我正在为android创建一个应用程序,它使用“way2sms.com”、“fullonsms.com”等网关发送短信,我已经成功地从这些网关发送短信,现在我想采取另一个步骤,即“短信发送报告”。我有一个基本的想法,我将如何做到这一点。当我向用户选择的号码发送短信后,我将向用户发送一条短信,其中包含一些格式化文本,例如“SMSDELIVERYREPORT”。我想做的是,当用户收到此类消息时,而不是我们收到正常短信时收到的正常通知时,应用程序将创建一个警报对话框,显示“消息已成功传递”。请指导我完

我正在为android创建一个应用程序,它使用“way2sms.com”、“fullonsms.com”等网关发送短信,我已经成功地从这些网关发送短信,现在我想采取另一个步骤,即“短信发送报告”。我有一个基本的想法,我将如何做到这一点。当我向用户选择的号码发送短信后,我将向用户发送一条短信,其中包含一些格式化文本,例如“SMSDELIVERYREPORT”。我想做的是,当用户收到此类消息时,而不是我们收到正常短信时收到的正常通知时,应用程序将创建一个警报对话框,显示“消息已成功传递”。请指导我完成此任务。还有,我怎样才能确保这些信息不会进入用户的正常邮件收件箱。

我在创建类似内容时使用了教程


只需跳到处理收到的短信

此代码将涵盖您发送短信的所有可能情况

private void sendSMS(String phoneNumber, String message)
{        
    String SENT = "SMS_SENT";
    String DELIVERED = "SMS_DELIVERED";

    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
        new Intent(SENT), 0);

    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
        new Intent(DELIVERED), 0);

    //---when the SMS has been sent---
    registerReceiver(new BroadcastReceiver(){
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode())
            {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS sent", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(getBaseContext(), "Generic failure", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(getBaseContext(), "No service", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NULL_PDU:
                    Toast.makeText(getBaseContext(), "Null PDU", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_RADIO_OFF:
                    Toast.makeText(getBaseContext(), "Radio off", 
                            Toast.LENGTH_SHORT).show();
                    break;
            }
        }
    }, new IntentFilter(SENT));

    //---when the SMS has been delivered---
    registerReceiver(new BroadcastReceiver(){
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode())
            {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS delivered", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case Activity.RESULT_CANCELED:
                    Toast.makeText(getBaseContext(), "SMS not delivered", 
                            Toast.LENGTH_SHORT).show();
                    break;                        
            }
        }
    }, new IntentFilter(DELIVERED));        

    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);        
}

这里有一个

但如何阻止这些邮件进入用户的收件箱呢?只需添加abortBroadcast();在您的广播接收器中(检查是否是正确的短信后),我正在使用“way2sms.com”或“fullonsms.com”发送短信,我可以使用此代码吗?我不明白。你是说你正在使用他们的API发送短信?那么我相信你可以!工作原理基本相同。但我不是100%肯定!你最好自己试一试,但我认为应该行得通!