2016-03-22 30 views
0

私は文字長さのメッセージを送信するために実装したので、160文字のメッセージに分かれています。SmsManagerがいくつかのメッセージを送信できません

しかし、それは私が非同期タスクを追加して、いくつかのメッセージをスキップし、それでも問題が継続的、私はここに

を解決できるという点であなたが得ることができる

public class SendMessage 
    { 

     public static void SendSMS(Activity activity, String Msg) 
     { 

      try { 
       SmsSendTask mAuthTask=null; 
       mAuthTask = new SmsSendTask(Msg); 
       mAuthTask.execute((Void) null); 
      } catch (Exception e) { 
       Toast.makeText(activity, "SMS failed, please try again.", Toast.LENGTH_LONG).show(); 
       System.out.println(e.toString()+"<<e>>>"); 
       e.printStackTrace(); 
      } 
     } 


     public static class SmsSendTask extends AsyncTask<Void, Void, Boolean> { 
      private final String _msg; 
       SmsSendTask(String msg) { 
       _msg = msg; 
     } 

      @Override 
      protected Boolean doInBackground(Void... params) { 
       try { 
        Thread.sleep(5000); 
       } catch (InterruptedException e) { 
        return false; 
       } 
       SmsManager smsManager = SmsManager.getDefault(); 
       smsManager.sendTextMessage("9246591931", null, _msg, null, null); 
       return true; 
      } 

      @Override 
      protected void onPostExecute(final Boolean success) { 
       if (success) { 
       } else { 
       } 
      } 

      @Override 
      protected void onCancelled() { 
      } 
     } 
    } 
+0

、私のコードですこのリンクのあなたの答えhttp://stackoverflow.com/a/6590782/1896677 – bhavikkumar

+1

[160文字以上のSMSを送信するにはどうすればいいですか?](http://stackoverflow.com/questions/6580675/how-to -send-the-sms-160文字以上) – kawashita86

答えて

0
String body="this is my message"; 
    SmsManager sms = SmsManager.getDefault(); 
    ArrayList<String>arraylist = new ArrayList<String>(); 
    arraylist=sms.divideMessage(body); 
    try 
    { 
     sms.sendMultipartTextMessage(address, null,arraylist, null,null); 

    } 
    catch (Exception e) 
    { 

    } 
関連する問題