如何发送短信多部分。对于更多的160个字符 [英] How to send SMS multipart.. for more 160 characters

查看:150
本文介绍了如何发送短信多部分。对于更多的160个字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想发短信更160个字符,但我只与多部分的问题...

  // ---发送一个短信到另一台设备---
公共无效sendSMS(字符串phoneNumber的,字符串消息,最终的字符串ID)
{

    字符串SENT =SMS_SENT;
    字符串DELIVERED =SMS_DELIVERED;

    PendingIntent sentPI = PendingIntent.getBroadcast(此,0,
        新的意图(SENT),0);

    PendingIntent deliveredPI = PendingIntent.getBroadcast(此,0,
        新的意图(交付),0);

    // ---当短信已发送---
    registerReceiver(新BroadcastReceiver的(){
        @覆盖
        公共无效的onReceive(背景为arg0,意图ARG1){
            开关(的getResult code())
            {
                案例Activity.RESULT_OK:
                    //Toast.makeText(getBaseContext(),短信发送,Toast.LENGTH_SHORT).show();
                    getServerData(http://site.com,身份证,身份证);

                    打破;
                案例SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    //Toast.makeText(getBaseContext(),一般故障,Toast.LENGTH_SHORT).show();
                    打破;
                案例SmsManager.RESULT_ERROR_NO_SERVICE:
                    //Toast.makeText(getBaseContext(),无服务,Toast.LENGTH_SHORT).show();
                    打破;
                案例SmsManager.RESULT_ERROR_NULL_PDU:
                    //Toast.makeText(getBaseContext(),空的PDU,Toast.LENGTH_SHORT).show();
                    打破;
                案例SmsManager.RESULT_ERROR_RADIO_OFF:
                    //Toast.makeText(getBaseContext(),无线电关,Toast.LENGTH_SHORT).show();
                    打破;
            }
        }
    },新的IntentFilter(发送));

    // ---当SMS已交付---
    registerReceiver(新BroadcastReceiver的(){
        @覆盖
        公共无效的onReceive(背景为arg0,意图ARG1){
            开关(的getResult code())
            {
                案例Activity.RESULT_OK:
                    //Toast.makeText(getBaseContext(),SMS递送,Toast.LENGTH_SHORT).show();
                    打破;
                案例Activity.RESULT_CANCELED:
                   // Toast.makeText(getBaseContext(),短信未交付,Toast.LENGTH_SHORT).show();
                    打破;
            }
        }
    },新的IntentFilter(交付));


  / *
                 不要工作
  SmsManager的短信= SmsManager.getDefault();
  ArrayList的<字符串>部分= sms.divideMessage(消息);
  sms.sendMultipartTextMessage(phoneNumber的,零,部件,NULL,NULL);
  * /


  / *做工精细,但字符160有限公司* /

  SmsManager的短信= SmsManager.getDefault();
  sms.sendTextMessage(phoneNumber的,空,消息,sentPI,deliveredPI);

}
 

解决方案

  SmsManager的短信= SmsManager.getDefault();
 

ArrayList的部分= sms.divideMessage(消息); sms.sendMultipartTextMessage(phoneNumber的,零,部件,NULL,NULL);

I want to send SMS with more 160 characters, but I only have a problem with the multipart...

//---sends a SMS message to another device---
public void sendSMS(String phoneNumber, String message, final String Id)
{      

    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();
                    getServerData("http://site.com","id",Id);

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


  /*
                 Don't work
  SmsManager sms = SmsManager.getDefault();
  ArrayList<String> parts = sms.divideMessage(message);
  sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);
  */


  /* WORK FINE, BUT 160 chars limited */

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

}

解决方案

SmsManager sms = SmsManager.getDefault();

ArrayList parts = sms.divideMessage(message); sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);

这篇关于如何发送短信多部分。对于更多的160个字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆