Android Toast message可指定消息发送到的号码

Android Toast message可指定消息发送到的号码,android,sms,Android,Sms,因此,我的应用程序中的SMS功能几乎完成了。它需要做的最后一件事是显示一个Toast,它将消息发送到哪个号码。 我有以下代码: 全局变量: private BroadcastReceiver sendBroadcastReceiver; private BroadcastReceiver deliveryBroadcastReceiver; String SENT = "SMS_SENT"; String DELIVERED = "SMS_DELIVERED"; sendBroadcast

因此,我的应用程序中的
SMS
功能几乎完成了。它需要做的最后一件事是显示一个
Toast
,它将消息发送到哪个号码。 我有以下代码:

全局变量:

private BroadcastReceiver sendBroadcastReceiver;
private BroadcastReceiver deliveryBroadcastReceiver;

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
sendBroadcastReceiver = new BroadcastReceiver()
        {

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

        deliveryBroadcastReceiver = new BroadcastReceiver()
        {
            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;
                }
            }
        };
    registerReceiver(deliveryBroadcastReceiver, new IntentFilter(DELIVERED));
    registerReceiver(sendBroadcastReceiver , new IntentFilter(SENT));
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);
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
}
ArrayList<String> contacts = new ArrayList();

List<String> list = SM.getAllValue();
    for(String string : list){
        contacts.add(string);
        }
    for(int i = 0; i < contacts.size(); i++){
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
    }
在void onCreate(Bundle savedInstanceState)上声明:

private BroadcastReceiver sendBroadcastReceiver;
private BroadcastReceiver deliveryBroadcastReceiver;

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
sendBroadcastReceiver = new BroadcastReceiver()
        {

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

        deliveryBroadcastReceiver = new BroadcastReceiver()
        {
            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;
                }
            }
        };
    registerReceiver(deliveryBroadcastReceiver, new IntentFilter(DELIVERED));
    registerReceiver(sendBroadcastReceiver , new IntentFilter(SENT));
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);
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
}
ArrayList<String> contacts = new ArrayList();

List<String> list = SM.getAllValue();
    for(String string : list){
        contacts.add(string);
        }
    for(int i = 0; i < contacts.size(); i++){
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
    }
发送短信功能:

private BroadcastReceiver sendBroadcastReceiver;
private BroadcastReceiver deliveryBroadcastReceiver;

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
sendBroadcastReceiver = new BroadcastReceiver()
        {

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

        deliveryBroadcastReceiver = new BroadcastReceiver()
        {
            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;
                }
            }
        };
    registerReceiver(deliveryBroadcastReceiver, new IntentFilter(DELIVERED));
    registerReceiver(sendBroadcastReceiver , new IntentFilter(SENT));
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);
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
}
ArrayList<String> contacts = new ArrayList();

List<String> list = SM.getAllValue();
    for(String string : list){
        contacts.add(string);
        }
    for(int i = 0; i < contacts.size(); i++){
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
    }
将联系人(存储在首选项中)调用到方法调用:

private BroadcastReceiver sendBroadcastReceiver;
private BroadcastReceiver deliveryBroadcastReceiver;

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
sendBroadcastReceiver = new BroadcastReceiver()
        {

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

        deliveryBroadcastReceiver = new BroadcastReceiver()
        {
            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;
                }
            }
        };
    registerReceiver(deliveryBroadcastReceiver, new IntentFilter(DELIVERED));
    registerReceiver(sendBroadcastReceiver , new IntentFilter(SENT));
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);
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
}
ArrayList<String> contacts = new ArrayList();

List<String> list = SM.getAllValue();
    for(String string : list){
        contacts.add(string);
        }
    for(int i = 0; i < contacts.size(); i++){
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
    }
在向多个号码发送消息时,下面的代码会反复向我发送
SMS Sent
toast。我现在如何在toast中指定数字,例如发送到Number1的
短信、发送到Number2的
短信等,或者统称
所有短信都已发送

请帮助:)

首先在此处添加新变量

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
命名它
String name=null

然后在
stringnumbertosend=contacts.get(i).toString()下

添加
name=numberToSend

现在在toast中添加变量

            Toast.makeText(getBaseContext(), "SMS to " + name + " has been sent.", Toast.LENGTH_SHORT).show();
更新:

private BroadcastReceiver sendBroadcastReceiver;
private BroadcastReceiver deliveryBroadcastReceiver;

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
sendBroadcastReceiver = new BroadcastReceiver()
        {

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

        deliveryBroadcastReceiver = new BroadcastReceiver()
        {
            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;
                }
            }
        };
    registerReceiver(deliveryBroadcastReceiver, new IntentFilter(DELIVERED));
    registerReceiver(sendBroadcastReceiver , new IntentFilter(SENT));
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);
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
}
ArrayList<String> contacts = new ArrayList();

List<String> list = SM.getAllValue();
    for(String string : list){
        contacts.add(string);
        }
    for(int i = 0; i < contacts.size(); i++){
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
    }
首先,去掉你的每一次接触

            Toast.makeText(getBaseContext(), "SMS Sent", Toast.LENGTH_SHORT).show();
我更喜欢把它做成
Log.e(“fd”,“Fddf”)

然后在循环中添加一个if语句

    for(int i = 0; i < contacts.size(); i++){
if (i = contacts.size(){
                Toast.makeText(getBaseContext(), "SMS Sent to all contacts.", Toast.LENGTH_SHORT).show();

}else {
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
}
    }
for(int i=0;i
首先在此处添加一个新变量

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
命名它
String name=null;

然后在
String numberToSend=contacts.get(i).toString()下;

添加
name=numberToSend;

现在在toast中添加变量

            Toast.makeText(getBaseContext(), "SMS to " + name + " has been sent.", Toast.LENGTH_SHORT).show();
更新:

private BroadcastReceiver sendBroadcastReceiver;
private BroadcastReceiver deliveryBroadcastReceiver;

String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED"; 
sendBroadcastReceiver = new BroadcastReceiver()
        {

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

        deliveryBroadcastReceiver = new BroadcastReceiver()
        {
            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;
                }
            }
        };
    registerReceiver(deliveryBroadcastReceiver, new IntentFilter(DELIVERED));
    registerReceiver(sendBroadcastReceiver , new IntentFilter(SENT));
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);
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
}
ArrayList<String> contacts = new ArrayList();

List<String> list = SM.getAllValue();
    for(String string : list){
        contacts.add(string);
        }
    for(int i = 0; i < contacts.size(); i++){
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
    }
首先,去掉你的每一次接触

            Toast.makeText(getBaseContext(), "SMS Sent", Toast.LENGTH_SHORT).show();
我更喜欢把它做成
Log.e(“fd”、“Fddf”);

然后在循环中添加一个if语句

    for(int i = 0; i < contacts.size(); i++){
if (i = contacts.size(){
                Toast.makeText(getBaseContext(), "SMS Sent to all contacts.", Toast.LENGTH_SHORT).show();

}else {
        String numberToSend = contacts.get(i).toString();
        sendSMS(numberToSend, sms);
}
    }
for(int i=0;i
在发送的广播目的(
新目的(发送)
)中,您可以添加发送目的地的号码:

Intent intent = new Intent(SENT);
intent.putExtra("number", phoneNumber);
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, intent, 0);
然后在接收器中,您可以使用以下号码:

public void onReceive(Context arg0, Intent arg1) {
    String phoneNumber = arg1.getStringExtra("number");
    // Use it in the toast
}

在已发送的广播意图(
新意图(已发送)
)中,您可以添加发送该广播意图的号码:

Intent intent = new Intent(SENT);
intent.putExtra("number", phoneNumber);
PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, intent, 0);
然后在接收器中,您可以使用以下号码:

public void onReceive(Context arg0, Intent arg1) {
    String phoneNumber = arg1.getStringExtra("number");
    // Use it in the toast
}


使用这个函数,我得到了生成的每个吐司的最后一个
numberToSend
。这不是你想要的吗?短信发送到96955995?是的…但我也想显示剩余的数字…比如如果我有num1、num2和num3,我希望所有的数字都出现在吐司中。当前的代码只给出num3。那么你想要这样的吐司吗t到xx1、xx2、xx3、xx4、xx5?这或是单独发送的消息。使用它,我得到了生成的每个烤面包上的最后一个
numberToSend
。这不是你想要的吗?短信发送到96955995?是的…但我也想显示剩余的数字…就像我有num1、num2和num3一样,我希望所有的数字都来在toast中向上。当前代码仅给出num3。因此,您想要这样的toast..sms发送到xx1、xx2、xx3、xx4、xx5?无论是单独发送还是单独发送,消息都应该已经发送。我只是从首选项中获取第一个数字。
SM.getAllValues()
gives以列表的形式返回用户保存为其android首选项的所有值。我看不出这与我给出的答案有什么关系?…您给出的答案…循环最后一个数字…就像我有num1、num2和num3一样。toast而不是给我…消息发送给num1,消息发送给num2,消息sent到num3向我发送消息到num3(x3).不应该。我给出的答案包括您发送短信的目的是通知您消息已发送到的号码。因此,toast应该显示与消息发送到的号码完全相同的号码。我只是从首选项中获取第一个号码。
SM.getAllValues()
gives以列表的形式返回用户保存为其android首选项的所有值。我看不出这与我给出的答案有什么关系?…您给出的答案…循环最后一个数字…就像我有num1、num2和num3一样。toast而不是给我…消息发送给num1,消息发送给num2,消息sent to num3向我发送消息给num3(x3)。不应该。我给出的答案包括您发送短信的号码,目的是通知您消息已发送。因此,toast应显示与消息发送到的号码完全相同的号码。