2014-12-12 4 views
0

Я только что узнал, что мое приложение не может отправлять более 160 символов за раз. он отлично работает на персонажах менее 160. Когда я пытаюсь отправить более 160 символов за раз. он отображает «отправленные сообщения», но сообщение никуда не денется, что я должен изменить, чтобы отправить более 160 символов. спасибо
здесь кодотправка более 160 символов в смс

public class MainActivity7 extends ActionBarActivity { 
String value ; 
    Button button; 
    TextView editext2; 
    TextView editText; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main_activity7); 

     editText = (TextView) findViewById(R.id.editText); 
     button = (Button) findViewById(R.id.button); 
     editext2 = (TextView) findViewById(R.id.editText2); 

     Intent a = getIntent(); 

     editText.setText(a.getStringExtra("item") ); 


     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       sendSMSMessage(); 
      } 


     }); 



    } 

    private void sendSMSMessage() { 
     Log.i("Send SMS", ""); 
     String phoneno = editext2.getText().toString(); 
     String message = editText.getText().toString(); 
     try{ 
      SmsManager smsManager = SmsManager.getDefault(); 
      smsManager.sendTextMessage(phoneno,null,message,null,null); 
      Toast.makeText(getApplicationContext(),"sms sent.", 
        Toast.LENGTH_LONG).show(); } 
     catch (Exception e){ 
      Toast.makeText(getApplicationContext(), 
        "sms failed,please try again", 
        Toast.LENGTH_LONG).show(); 
      e.printStackTrace(); 
     } 



    } 
} 
+0

здесь уже ответил http://stackoverflow.com/questions/6580675/how-to-send-the-sms-more-than-160-character –

ответ

1

Чтобы отправить более 160 символов в SMS вам нужно отправить его в виде множественного SMS.

SmsManager sm = SmsManager.getDefault(); 
ArrayList<String> parts =sm.divideMessage(LONG_TEXT); 
int numParts = parts.size(); 

ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>(); 
ArrayList<PendingIntent> deliveryIntents = new ArrayList<PendingIntent>(); 

for (int i = 0; i < numParts; i++) { 
sentIntents.add(PendingIntent.getBroadcast(getContext(), 0, mSendIntent, 0)); 
deliveryIntents.add(PendingIntent.getBroadcast(getContext(), 0, mDeliveryIntent, 0)); 
} 

sm.sendMultiPartTextMessage(mDestAddr,null, parts, sentIntents, deliveryIntents); 
Смежные вопросы