3

我有一个统计输入字符的短信计数器;

我想当用户输入Englishchar(English chars + sings + numbers) 时,计数变量 do ++ to Number: 160

但是,如果在所有 ra Persianchar 中,计数变量 do ++ 到Number: 70

我应该怎么做?

var ucs2 = text.search(/[^\x00-\x7D]/)我罚款了这段代码:php返回什么字符用户;波斯字符或英语。

Java 中的等效代码 - 什么是 Android?

 private final TextWatcher TextWatcher_Method = new TextWatcher() 
  { 
     public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3)
        {
            cnt2=matn_counter.length();

            TextView counter=(TextView)findViewById(R.id.txt_counter);  

            cnt1=(int) Math.ceil(cnt2/6);
            Integer cnt3=(cnt2%6);

            counter.setText(Integer.toString(cnt1)+"/"+Integer.toString(cnt3));

        }
  }
4

4 回答 4

2

您无法从模拟器向设备发送“真实”短信,因为您没有 SIM 卡。

但是,如果您运行多个模拟器,则可以将其从模拟器发送到模拟器。

为此,请检查以下问题:使用 android 模拟器发送和接收文本

于 2013-10-02T07:47:02.820 回答
2

您可以使用Bidi类。有关更多信息,请查看此答案

于 2013-11-26T08:16:45.283 回答
1

这里有一些关于如何发送短信、拨打电话等的有用提示... http://www.apurbadebnath.com/blog/android-emulator-tips/

于 2013-10-02T07:47:47.760 回答
0

答案:

实际上你应该检查 ASCII 字符。

如果任何字符超出 ASCII范围(0x0000 到 0x007F),则消息的长度限制为 70

否则,如您所指,如果所有字符都是 ASCII(例如英文字母或数字),则消息长度的限制为 160。

代码很简单:

public static boolean isASCIIMessage(String s) {
for (int i = 0; i < Character.codePointCount(s, 0, s.length()); i++) {
    int c = s.codePointAt(i);
    if (c >= 0x0000 && c <=0x007F)
        return false;
}
return true;

无论如何,如果您想检测波斯语输入,请参阅此答案

于 2016-01-12T10:28:10.457 回答