我正在尝试使用我的应用程序发送短信。
但是,在通过我的应用程序发送时,我的邮件被删除了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来测试它。
谢谢!
答案 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);