如何使用安卓短信管理器发送多条消息



我正在尝试开发可以从服务器加载消息和电话号码并将其存储在内部的短信应用程序,因此当尝试使用循环一次发送所有消息时,仅发送其中一些消息,这是我的代码。 请帮忙

   send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            try {
                String SENT = "sent";
                String DELIVERED = "delivered";
                Intent sentIntent = new Intent(SENT);
 /*Create Pending Intents*/
                PendingIntent sentPI = PendingIntent.getBroadcast(
                        getApplicationContext(), 0, sentIntent,
                        PendingIntent.FLAG_UPDATE_CURRENT);
                Intent deliveryIntent = new Intent(DELIVERED);
                PendingIntent deliverPI = PendingIntent.getBroadcast(
                        getApplicationContext(), 0, deliveryIntent,
                        PendingIntent.FLAG_UPDATE_CURRENT);
 /* Register for SMS send action */
                registerReceiver(new BroadcastReceiver() {
                    @Override
                    public void onReceive(Context context, Intent intent) {
                        String result = "";
                        switch (getResultCode()) {
                            case Activity.RESULT_OK:
                                result = "Transmission successful";
                                break;
                            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                                result = "Transmission failed";
                                break;
                            case SmsManager.RESULT_ERROR_RADIO_OFF:
                                result = "Radio off";
                                break;
                            case SmsManager.RESULT_ERROR_NULL_PDU:
                                result = "No PDU defined";
                                break;
                            case SmsManager.RESULT_ERROR_NO_SERVICE:
                                result = "No service";
                                break;
                        }
                        Toast.makeText(getApplicationContext(), result,
                                Toast.LENGTH_LONG).show();
                    }
                }, new IntentFilter(SENT));
 /* Register for Delivery event */
                registerReceiver(new BroadcastReceiver() {
                    @Override
                    public void onReceive(Context context, Intent intent) {
                        Toast.makeText(getApplicationContext(), "Delivered",
                                Toast.LENGTH_LONG).show();
                    }
                }, new IntentFilter(DELIVERED));
  /*Send SMS*/
                ArrayList<Messages> messagesArrayList = new ArrayList<>();
         /* loading messages and phone into arraylist */
                messagesArrayList = db.getMessages();
                for (int i = 0; i < messagesArrayList.size() ; i++) {
                    SmsManager smsManager = SmsManager.getDefault();
                    smsManager.sendTextMessage("090" +       messagesArrayList.get(i).getPhone(), null, messagesArrayList.get(i).getBody(), sentPI,
                            deliverPI);

                }
                }catch(Exception ex){
                    Toast.makeText(getApplicationContext(),
                            ex.getMessage().toString(), Toast.LENGTH_LONG)
                            .show();
                    ex.printStackTrace();
                }
        }
    });

使用这个

String strnum="100864445556;1004522145586;100855822557;100885222559";

Uri smsToUri = Uri.parse("smsto:" + strnum);

如果您从数据库查询中获取数字,则

在循环的帮助下

使字符串strnum = num1 + ";" + num2 + ";" + num3 + ";"依此类推

最新更新