使用Android发送全长短信

时间:2014-07-07 14:49:04

标签: java android mobile sms

我正在尝试使用我的应用程序发送短信。

但是,在通过我的应用程序发送时,我的邮件被删除了67个字符。我知道短信的最大长度是160个字符,并且可以使用本机Android消息传递应用程序发送此长度的消息。

这是我的代码:

String textToSend = "this is a string that is about 100 characters or so. It is being split up by android after 67 characters.";

SmsManager sms = SmsManager.getDefault();
ArrayList<String> msgStringArray = sms.divideMessage(textToSend);

for(String s : msgStringArray){
    //this will say 67 and then the remainder 
    Log.d(TAG, "STRING LENGTH: " + s.length() + " " + s);
}

sms.sendMultipartTextMessage(selectedNumber, null, msgStringArray, null, null);

我在想它可能是编码或类似的东西。我认为默认情况下使用16位编码而不是GSM,但我还没有找到解决这个问题的任何例子。一个代码示例会很棒!

我在S3上使用android 4.4来测试它。

谢谢!

2 个答案:

答案 0 :(得分:0)

我明白了。我的预感是unicode编码是正确的。

无论如何,我遇到了这个网站:http://www.wrankl.de/JavaPC/SMSTools.html

有一个名为convertUnicode2GSM的方法,我用它来转换我的String。现在它在一条短信中发送整个信息,而不是在67个字符后发送。

答案 1 :(得分:-1)

String smsNumber = "Insert number here"; //AIMS HELPLINE
String smsText = "Need to book an appointment with your hospital";
Uri uri = Uri.parse("smsto:" + smsNumber);
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", smsText);
startActivity(intent);