澳门金沙4787.com官网,原题目:手提式有线电话机短信为何要限量6213个汉字?黑莓发短信有字数限制吗?

自个儿不想写1篇大而全的篇章,也无力去搜求那么多材料涵盖全体知识点,若是想打听愈来愈多消息,那里有几篇作者感觉写得正确的篇章能够提供参考,本文也有的借鉴了其中的内容。

/*****************2016年4月23日
更新********************************/

/*****************2016年4月23日
更新********************************/

用过功效机的同伙们都会了解,每一条短信的篇幅被界定在616个汉字,超过之后就会被拆分为2条短信发送。

  • 《字符编码的传说:ASCII,GB231二,Unicode,UTF-8,UTF-1⑥》
  • 《unicode,ansi,utf-八,unicodebigendian编码的不一致》

知乎:什么是 7 位元的字符? 英文字符难道不是 8 bit
短信发送器,手提式有线电话机短信为啥要限制6磅lb个汉字。是2个字符?一条短信到底能容下 140 个英文字符照旧 160 个?

知乎:什么是 7 位元的字符? 英文字符难道不是 八 bit
是2个字符?一条短信到底能容下 140 个英文字符依然 160 个?

为何要限制在六拾伍个汉字?多设置一点不好啊?

基本功概念

  • 字符
    字符是各样文字和标志的总称,包罗各国家文字、标点符号、图形符号、数字等,乃至还能总结不可能呈现的字符(比方ASCII规范定义了1二十八个字符,当中三10五个字符不能展现)。
  • 字符集
    为了使Computer能够处理字符新闻,首先要调节选拔哪些字符。那样就形成了3个聚众,恐怕说三个表,称为字符表(character
    repertoire)。当然,也能够以为那就是三个字符集(character set)。
    举个例子说,将有所的英文字母放在一齐得以结合二个字符集,将有着的方块字放在一同能够组合2个字符集,等等。
  • 编码字符集
    对一个字符聚焦的具有字符进行编号,那种编号后的字符集叫做编码字符集(那里的编码仅仅指编号,不一致于下文中的编码)。常见的编码字符集有ASCII、Unicode、GBK等。

能够这么来驾驭:字符串是由字符构成,字符在Computer硬件中经过二进制格局积累,那种二进制情势正是编码。要是一直使用
“字符串️字符️2进制表示(编码)”
,会大增不一样门类编码之间转变的复杂。所以引进了3个抽象层,“字符串️字符️与积累无关的意味️二进制表示(编码)”
,那样就能够用一种与存储非亲非故的花样表示字符,不一样的编码之间调换时得以先转移到这些抽象层,然后再转变为任何编码方式。
比如:Unicode 便是 “与积存无关的代表”,UTF-八 就是 “二进制表示”。

维基百Corey「短信」词条之类概念「短信」:

维基百Corey「短信」词条之类概念「短信」:

实际,是有历史原因的。

ASCII字符集

平凡说的ASCII字符集不包含增加集,唯有1三十多个字符,因而其编码的蕴藏只须求采纳八个bit,1个字节丰硕了参天位长久都以0。比如字符’0’,其代码是十陆进制的0x30,二进制表示为001一千0。

那边说个和ASCII字符集有关的编码方案,GSM规范协议规定单条短信最多存款和储蓄136个字节的剧情,假若短信内容只包罗ASCII字符,因为ASCII字符的数量第三个人必定是0,所以GSM标准中明确了七bit编码的短信格式,只用八个bit来连接存款和储蓄ASCII字符,那样原本1三十七个八bit的囤积空间,就足以积存1陆10个七bit的数额。借使何人今后手上还有NOKIA手提式无线电话机,能够拿起来看看只含有ASCII字符的短信是否足以输入157个字符,倘诺短信中富含了非ASCII字符(比如汉语),那么全部字符都会形成双字节积累的编码(UCS-二编码),一条短信的始末就死灰复燃成只可以发送陆14个字符。现目前的智能手提式有线话机大多都帮忙短信拼接,并不是说单条短信的体积扩展了,而是将您编写的超过单条短信容积的短信分成多条发送,运转商也是按多条短信计的。

一则短信能够容纳140字节,也正是约1618个五个人元的字符、或是1318个捌-bit的字符,中文字、英语字与日文字那几个占二-byte的字符则可容纳陆1四个。(使用Unicode系统)。这个不包含额外的连串情报。

一则短信能够容纳140字节,相当于约161个8个人元的字符、或是1四十个8-bit的字符,中文字、匈牙利(Hungary)语字与日文字那么些占二-byte的字符则可容纳陆16个。(使用Unicode系统)。那一个不包蕴额外的系统情报。

案由要追溯到上世纪80年份,Friedhelm
希尔ebrand是前几日手提式有线电话机短信才具的主发明人,七十二个汉字(156个英文字符)就是他挑起的。

GB类别字符集

华语情状下1旦要正规彰显字符,仅依据ASCII字符集是老大的,因而大家国家制定了一层层的国家标准(GB),个中就包蕴GB231贰、GB1三千、GBK、GB18030……,最新的正式是GB18030,包蕴70二四十五个字符。

再有本身的无绳电话机怎么是最多 150 个英文字母?那是 7.伍 位元的编码格局吗?

再有小编的手机怎么是最多 150 个英文字母?那是 7.5 位元的编码情势吗?

澳门金沙4787.com官网 1

Unicode字符集

Unicode字符集由多语言软件创设商组成的统一码缔盟(Unicode
Consortium)与国标化组织的ISO-十64陆职业组制订,为种种语言中的每一个字符钦赐统一且唯1的代码点,以满足跨语言、跨平台调换和拍卖文件的须求。中、日、韩的三种文字占用了Unicode中0x两千到0x玖FFF的片段
Unicode近日大面积使用的是UCS-二编码,它用多少个字节来编码3个字符,
比方汉字”壹”的编码是0x四E00。事实上Unicode对汉字协助不怎么好,那也是不能的,简体和复杂总共有陆60000个汉字,而UCS-二最多能表示6553玖个,所以Unicode只好排除有的大概不用的方块字,幸好GB231二字符聚集常用的简体汉字也可是67六一个,为了能代表全部汉字,Unicode也有UCS-肆规范,正是用
四个字节来编码字符。

Unicode代码点范围为0x00x10FFFF,共计1114112个代码点,划分为编号01六的1八个字符平面,每一种平面包括65伍4十三个代码点。其中编号为0的平面最为常用,称为基本多语种平面(Basic
Multilingual Plane, BMP);其余平面则称为协助语言平面。

为了描述几个代码点,能够选用U加十陆进制整数的措施。比方,U+00肆一意味英文大写字母A,U+4E00表示汉字”1”。

 

 

他迅固然用一台打字机随便打出部分由字母组成的消息,令人奇异的是,这几个新闻每一条都是只有一两行,而且总字数也不会超过1伍十六个,160便成为他备感颇具神奇的数字。

编码

有关编码格局,当然可以行使类似ASCII字符集的编码方式——代码点等值调换法(那是自身要好起的名字)。既然Unicode代码点的值的限定是0~0x十FFF,那么能够用三个二一bit的编码单元来编码,直接把代码点等值转变到二壹bit的贰进制类别。

然而那存在二个上空应用的主题材料,例如对于利用葡萄牙共和国(República Portuguesa)语的人来讲,ASCII基本能够满意使用。假如运用ASCII码,只须要3个字节来存款和储蓄字符,不过若使用刚才的思路,供给接近二个字节来囤积,那明明是荒废空间的。

假诺须要援助的字符集再少一些,仅援救理编辑号0的平面,那至少也有655三11个字符,供给1陆bit的空间(2字节)来积累二个字符,即UCS-二编码,那种编码用来储存ASCII字符也是一种浪费。

Unicode在不长1段时间内不可能推广,直到网络的现身,为消除Unicode如何在互联网上传输的标题,于是面向传输的重重
UTF(UCS Transfer
Format)规范出现了,顾名思义,UTF-八便是每一次柒个位传输数据,而UTF-1六正是历次15个位。UTF-八就是在互联互连网行使最广的一种Unicode的完成格局,那是为传输而设计的编码,并使编码无国界,那样就能够来得全世界上独具知识的字符了。

yskin:

yskin:

Friedhelm
希尔ebrand四陆周岁的时候,他以为近来手提式有线电话机短信1伍20个字符已经够用使用,于是决定把那个数字定为一条短信内容的字数上线。

UTF-8

UTF-八最大的1个特征,正是它是1种变长的编码格局。它可以接纳1~四个字节表示多个标志,依据区别的符号而变化字节长度,当字符在ASCII
码的限按期,就用二个字节表示,保留了ASCII字符多个字节的编码做为它的1局地,注意的是Unicode三个普通话字符占三个字节,而UTF-8三个中文字符占贰个字节)。从Unicode到UTF-八并不是平昔的呼应,而是要过部分算法和规则来转变。

Unicode符号范围(十六进制) UTF-8编码方式(二进制)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

比如:
依旧用中文“一”,其Unicode值为0x4E00,落在0800-FFFF的限制内,事实上普通话基本上都在这么些区域。0x肆E00的贰进制表示为0十011一千000000,转换来UTF-8便是11十0拾0 10111000一千0000,对应的十陆进制表示是0xE四 0xB八 0x80。

八位元字符正是指规范ASCII去掉最高位的0。以那种艺术张开编码,在美利坚联邦合众国那样的国家,发送的短信字符都以ASCII码表里的,所以没供给浪费三个字位。

五个人元字符就是目标准ASCII去掉最高位的0。以那种方法开始展览编码,在美利坚合资国这么的国度,发送的短信字符都是ASCII码表里的,所以没要求浪费2个字位。

乘机短信技能的发展,各大运行商也扰攘把16二十一个字符作为单条短信的上线。

UTF-16

UTF-1六的编码单元是1陆bit,对于各个代码点,选取二个或许一个编码单元来表示,因而那是3个变长表示。

 

 

澳门金沙4787.com官网 2

UTF-32

UTF-3二采纳代码点等值调换法,将各样代码点编码为一个3二bit的编码单元(4字节),由此空间成效比较低,比不上别的Unicode编码应用分布。

而短信协议协助7字位、八字位、1陆字位三种编码,7字位用于美利坚合众国,能够发送15七个假名,八字位用于澳大阿伯丁联邦(Commonwealth of Australia)国度,1陆字位用于中国和东瀛韩俄等国家,使用UCS-二编码。而UCS-贰把具有Unicode字符编码为二字节,所以即使英文字母也会编码成一个字节。

而短信协议协理7字位、八字位、1六字位叁种编码,七字位用于美利坚合资国,能够发送1伍14个假名,八字位用于澳洲江山,1六字位用于中国和东瀛韩俄等国家,使用UCS-2编码。而UCS-二把全数Unicode字符编码为贰字节,所以固然英文字母也会编码成二个字节。

对编制程序才干有所了然的同学精晓,由于字符本身使用编码形式的例外,最终将促成字符个数的差异。对于英文字母来讲,一般选用多人ASCII编码,中文则为7位UCS-二编码,要求占用二个字节。

工具推荐

那里有个网站提供的转码效果十二分好,比起一些站长工具更标准。

澳门金沙4787.com官网 3

Paste_Image.png

上图是使用该网址搜索中文字符“一”的结果,能够看出其Unicode值为U+四E00,UTF-八编码为0xE4
0xB8 0x80,在URubiconL中需求转码为%E四%B八%80,在js脚本中则是\u4e00……。

 

 

1伍十四个英文字符要用多个人ASCII编码来张开表示,须要柒*1陆10人。不过换到六位UCS-二编码表示,则需求柒*160/七个人。同时,由于中文汉字供给占用3个字符,那样普通话字符总的数量正是七*160/8/二,刚好等于70。

举多少个栗子

利用Windows Mobile
6系统做测试,新建短信后输入1个英文字母,上边展现1/160,再输入一个来得2/160,那正是7字位状态,能够在140字节里装下15捌个字符。当再输入三个中夏族民共和国字的时候,上边包车型客车来得立时成为3/70,那就是1陆字位状态,各样字符都占3个字节,140字节只可以装下七二十一个字符,哪怕里面是陆拾六个英文字符加三个汉字。

选用Windows Mobile
陆系统做测试,新建短信后输入二个英文字母,下边突显1/160,再输入2个突显2/160,那便是7字位状态,可以在140字节里装下1五1五个字符。当再输入一其中夏族民共和国字的时候,下边包车型地铁呈现立即成为3/70,那正是1陆字位状态,每一种字符都占二个字节,140字节只好装下陆1玖个字符,哪怕里面是七二十个英文字符加2个汉字。

那正是怎么运转商规定单条短信的方块字限制为7十四个的原由。

有道翻译

用有道翻译的API来做示范,大家通过API获取单词”word”的汉译。

GET http://fanyi.youdao.com/openapi.do?keyfrom=WoxLauncher&key=1247918016&type=data&doctype=json&version=1.1&q=word

回来的JSON如下所示:

{
  "translation": [
    "词"
  ],
  "basic": {
    "us-phonetic": "wɝd",
    "phonetic": "wɜːd",
    "uk-phonetic": "wɜːd",
    "explains": [
      "n. [语] 单词;话语;消息;诺言;命令",
      "vt. 用言辞表达",
      "n. (Word)人名;(英)沃德"
    ]
  },
  "query": "word",
  "errorCode": 0,
  "web": [
    {
      "value": [
        "单词",
        "字",
        "字 (计算机)"
      ],
      "key": "word"
    },
    {
      "value": [
        "构词法",
        "造词法",
        "词性转换"
      ],
      "key": "Word Formation"
    },
    {
      "value": [
        "关键字",
        "中心词",
        "关键词"
      ],
      "key": "key word"
    }
  ]
}

再次来到的剧情涵盖粤语,从响应头大家能够看到重临的JSON使用了UTF-八编码:

澳门金沙4787.com官网 4

Paste_Image.png

用Wireshark抓包看看具体内容:

澳门金沙4787.com官网 5

Paste_Image.png

如上海教室所示,translation这些key对应的数组内容应当是"词",所以我们看看高亮区域的始末是22 E8 AF 8D 22,0x22对应ASCII字符",0xE8
0xAF 0x八D正是汉语的UTF-8编码。

 

 

P.S
对于从未运用过功用机的人的话,只怕一向都不掌握原来短信是有字数限制的。归来乐乎,查看更加多

ONE·一个

其一API是经过抓包抓出来的,哪个人让他俩不走https呢?

GET http://v3.wufazhuce.com:8000/api/reading/index

回来数据太多,仅截取一小段展开辨析。

{
  "res": 0,
  "data": {
    "essay": [
      {
        "content_id": "2176",
        "hp_title": "软糖| “白日梦” _ 初夏的味道",
        "hp_makettime": "2017-04-03 06:00:00",
        "guide_word": "我们每周会选择一个主题,由七个作者绘制不同风格的短篇漫画,每天一幅。",
        "start_video": "",
        "author": [
          {
            "user_id": "7742828",
            "user_name": "双麒_宋 ",
            "desc": "因爱而画,美好的作品产生于最压抑的欲望。",
            "wb_name": "",
            "is_settled": "0",
            "settled_type": "0",
            "summary": "因爱而画,美好的作品产生于最压抑的欲望。",
            "fans_total": "574",
            "web_url": "http://image.wufazhuce.com/FoPpyeue8ajoRlZ4Fy39a56o4NO-"
          }
        ],
    ......
    }
......
}

重临的剧情包涵汉语,但从响应头大家看不到重返的JSON使用了什么样编码格式:

澳门金沙4787.com官网 6

Paste_Image.png

用Wireshark抓包看看具体内容:

澳门金沙4787.com官网 7

Paste_Image.png

如上海体育场面所示,那个API请求重回的JSON数据输出的是普通话的Unicode转义字符,那事实上也是JS对中文的正规化管理方式,推测后台只怕是NodeJS完毕的。

本人是咕咕鸡,叁个还在不停学习的全栈程序猿。
热爱生活,喜欢跑步,家庭是自己连连前进向上的重力。

即便短信超过长度,那么系统就机关分成多条短信来发。因为要投入一些标记性字符以表示顺序,所以英文每条15一个,普通话每条六七个。接收方假若是新一点的手提式有线电电话机就会把这几条合并后展现给用户,老一点的无绳电话机就会分别显示每条短信。

万1短信超越长度,那么系统就机关分成多条短信来发。因为要参与一些标志性字符以表示顺序,所以英文每条一伍二个,汉语每条六多少个。接收方即使是新一点的手提式有线话机就会把这几条合并后出示给用户,老一点的无绳电电话机就会独家呈现每条短信。

责编:

 

 

比方说,输入陆16个中文,下边突显70/70,再加二个时上面显示“71/13四(贰短音信)”。输入1伍十几个英文,下边显示160/160,再加贰个出示“1633.33%0陆(二短音信)”。

比方,输入七10当中文,下边展现70/70,再加一个时上面展现“71/13四(2短消息)”。输入1五拾陆个英文,下边展现160/160,再加一个来得“1陆三分之一0陆(二短音讯)”。

 

 

应用13九邮箱做测试,里面发送短信无论什么字符都以以UCS-二编码,当输入13二个字符时,展现将按三条短信计费。此外,表达里还论及,最三只好补助350字的短信。

应用13九信箱做测试,里面发送短信无论什么字符都以以UCS-贰编码,当输入1叁拾1个字符时,展现将按三条短信计费。其它,表达里还涉及,最四只能帮助350字的短信。

 

 

楼主提到的150字限制没听闻过,英文谷歌没找到,普通话谷歌(Google)只搜到0玖年时电信在测试150字符短信系统。

楼主提到的150字限制没传说过,英文谷歌没找到,汉语谷歌(Google)只搜到0九年时邮电通讯在测试150字符短信系统。

/*************************************************/

/*************************************************/

  1. 拖动控件的话编写翻译器自动加的layout_blow=”@+id/xxx” id那些部分未有+号
    Ctrl+f批量替换
    艾德itText呈现的行数android:singleLine=”true”一行, android:lines=”伍”
    多行
    模拟器超时原因 Computer配置低,修改超时时间,模拟器socket挂了,重启一下
    短信api SmsManager若是过时,导包的难题gsm
    贰G时期的,若是叁个类不可能new对象,那么它必将存在1个getDefaut恐怕getInstance的静态方法

  2. SmsManager的方法
    sendDataMessage(发送彩信)
    sendMultipartTextMessage(发送多条音信),
    sendTextMessage(目的手提式有线电话机, null(来源手提式有线话机不帮助), text, sentIntent,
    deliveryIntent)后三个参数,延迟报告和送达报告,不珍贵填null
    内需那几个权力 android.permission.SEND_SMS

  1. 拖动控件的话编写翻译器自动加的layout_blow=”@+id/xxx” id这一个部分未有+号
    Ctrl+f批量替换
    EditText突显的行数android:singleLine=”true”壹行, android:lines=”5″
    多行
    模拟器超时原因 计算机配置低,修改超时时间,模拟器socket挂了,重启一下
    短信api SmsManager假如过时,导包的主题材料gsm
    二G时期的,如果一个类无法new对象,那么它必将存在2个getDefaut恐怕getInstance的静态方法

  2. SmsManager的方法
    sendDataMessage(发送彩信)
    sendMultipartTextMessage(发送多条新闻),
    sendTextMessage(目标手提式有线话机, null(来源手提式有线话机不援助), text, sentIntent,
    deliveryIntent)后七个参数,延迟报告和送达报告,不保护填null
    必要这一个权力 android.permission.SEND_SMS

短信都要最大尺寸的界定的,android提供了四个api用来拆分短信divideMessage(),再次来到ArrayList<String>,循环境与发展送for(String
str:contents){}

短信都要最大尺寸的限制的,android提供了贰个api用来拆分短信divideMessage(),再次来到ArrayList<String>,循环境与发展送for(String
str:contents){}

内需开启八个模拟器测试,电话号码正是端口号,此意义能够做出短信群发器

亟待开启多个模拟器测试,电话号码正是端口号,此意义能够做出短信群发器

activity代码:

activity代码:

package com.tsh.sms;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
    private EditText et_number;
    private EditText et_content;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt_send=(Button) findViewById(R.id.bt_send);
        et_number=(EditText) findViewById(R.id.et_number);
        et_content=(EditText) findViewById(R.id.et_content);
        bt_send.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.bt_send:
            String number=et_number.getText().toString().trim();
            String content=et_content.getText().toString().trim();
            if(TextUtils.isEmpty(number)||TextUtils.isEmpty(content)){
                Toast.makeText(this, "电话号码和内容都不能为空", Toast.LENGTH_SHORT).show();
                return;
            }
            SmsManager smsManager=SmsManager.getDefault();
            ArrayList<String> contents = smsManager.divideMessage(content);
            for(String str:contents){
                smsManager.sendTextMessage(number, null, str, null, null);
            }

            break;
        }
    }
}
package com.tsh.sms;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
    private EditText et_number;
    private EditText et_content;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt_send=(Button) findViewById(R.id.bt_send);
        et_number=(EditText) findViewById(R.id.et_number);
        et_content=(EditText) findViewById(R.id.et_content);
        bt_send.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.bt_send:
            String number=et_number.getText().toString().trim();
            String content=et_content.getText().toString().trim();
            if(TextUtils.isEmpty(number)||TextUtils.isEmpty(content)){
                Toast.makeText(this, "电话号码和内容都不能为空", Toast.LENGTH_SHORT).show();
                return;
            }
            SmsManager smsManager=SmsManager.getDefault();
            ArrayList<String> contents = smsManager.divideMessage(content);
            for(String str:contents){
                smsManager.sendTextMessage(number, null, str, null, null);
            }

            break;
        }
    }
}

 

 

layout代码

layout代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.tsh.sms.MainActivity" >

    <TextView
        android:id="@+id/tv_input_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/input_tel_number" />

    <EditText
        android:id="@+id/et_number"
        android:singleLine="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/tv_input_number"
        android:ems="10"
        android:inputType="phone" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/tv_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/et_number"
        android:text="@string/sms_content" />

    <EditText
        android:id="@+id/et_content"
        android:lines="5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/tv_number"
        android:ems="10" />

    <Button
        android:id="@+id/bt_send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/et_content"
        android:text="@string/send" />

</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.tsh.sms.MainActivity" >

    <TextView
        android:id="@+id/tv_input_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/input_tel_number" />

    <EditText
        android:id="@+id/et_number"
        android:singleLine="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/tv_input_number"
        android:ems="10"
        android:inputType="phone" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/tv_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/et_number"
        android:text="@string/sms_content" />

    <EditText
        android:id="@+id/et_content"
        android:lines="5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/tv_number"
        android:ems="10" />

    <Button
        android:id="@+id/bt_send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/et_content"
        android:text="@string/send" />

</RelativeLayout>

 

 

divideMessage

divideMessage

相关文章