我正在使用共享(通过短信)功能开发营销应用程序。 我需要确定SMS的第一部分允许的最大字符数。通常限制为160个字符。Android - 确定短信限制
当我输入某些东西时,例如“ABC”,就变成:
3/160
但是当我添加♥
字符,它应该成为:
4/70
,而不是4/160
这不仅适用于特殊字符,但也是汉字。如何实现这一目标?
编辑:
下面是到目前为止我的代码:
mSMS = (EditText) findViewById(R.id.SMS);
mSMS.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void afterTextChanged(Editable editable) {
String SMSText = mSMS.getText().toString();
String SMSLimit = "160";
SmsManager manager = SmsManager.getDefault();
ArrayList<String> messageParts = manager.divideMessage(SMSText);
if(messageParts.size() > 1){
if(messageParts.get(0).length() <= 70)
SMSLimit = "70";
} mCounter.setText(String.valueOf(SMSText.length()) + "/" + SMSLimit);
}
});
但是,这是错误的,因为它只能达到短信限制时的作品。我希望它在特殊字符输入工作。
感谢您的回答!我很欣赏你的想法。尽管如此,这意味着每当文本发生变化时都会循环整个字符串。如果可能的话,我想避免循环(出于性能原因)。 – Harry 2015-04-01 02:26:19
我更新了回复中的答案。 – 2015-04-01 07:56:11
谢谢!这正是我需要的。 – Harry 2015-04-01 08:25:07