android 发送短信 判断号码规则 判断字符数70

简介: public class duan extends Activity { /*声明变量一个Button与两个EditText*/ private Button mButton1; private EditText mEditText1; private EditText mEditText2; /** Called when the a




public class duan extends Activity  
{ 
  /*声明变量一个Button与两个EditText*/
  private Button mButton1; 
  private EditText mEditText1; 
  private EditText mEditText2; 
   
  /** Called when the activity is first created. */ 
  @Override 
  public void onCreate(Bundle savedInstanceState) 
  { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    
    /*
    * 通过findViewById构造器来建构
    * EditText1,EditText2与Button对象
    */
    mEditText1 = (EditText) findViewById(R.id.myEditText1); 
    mEditText2 = (EditText) findViewById(R.id.myEditText2); 
    mButton1 = (Button) findViewById(R.id.myButton1); 
    
    /*将默认文字加载EditText中*/
    mEditText1.setText("请输入号码"); 
    mEditText2.setText("请输入内容!!"); 
    
    /*设置onClickListener 让用户点击EditText时做出反应*/
    mEditText1.setOnClickListener(new EditText.OnClickListener()
    {
      public void onClick(View v)
      {
        /*点击EditText时清空正文*/
        mEditText1.setText("");
      }
    }
    );
    
    /*设置onClickListener 让用户点击EditText时做出反应*/
    mEditText2.setOnClickListener(new EditText.OnClickListener()
    {
      public void onClick(View v)
      {
        /*点击EditText时清空正文*/
        mEditText2.setText("");
      }
    }
    );
     
    /*设置onClickListener 让用户点击Button时做出反应*/
    mButton1.setOnClickListener(new Button.OnClickListener()
    { 
      @Override 
      public void onClick(View v) 
      { 
        /*由EditText1取得短信收件人电话*/
        String strDestAddress = mEditText1.getText().toString();
        /*由EditText2取得短信文字内容*/
        String strMessage = mEditText2.getText().toString(); 
        /*建构一取得default instance的 SmsManager对象 */
        SmsManager smsManager = SmsManager.getDefault(); 
      
        // TODO Auto-generated method stub 
        /*检查收件人电话格式与短信字数是否超过70字符*/
        if(isPhoneNumberValid(strDestAddress)==true &&
           iswithin70(strMessage)==true)
        {
          try 
          {
            /*
            * 两个条件都检查通过的情况下,发送短信
            * 先建构一PendingIntent对象并使用getBroadcast()广播
            * 将PendingIntent,电话,短信文字等参数
            * 传入sendTextMessage()方法发送短信
            */
            PendingIntent mPI = PendingIntent.getBroadcast
            (duan.this, 0, new Intent(), 0);
            smsManager.sendTextMessage
            (strDestAddress, null, strMessage, mPI, null); 
          } 
          catch(Exception e) 
          { 
            e.printStackTrace(); 
          } 
          Toast.makeText
          (
            duan.this,"送出成功!!" , 
            Toast.LENGTH_SHORT
          ).show();
          mEditText1.setText("");
          mEditText2.setText("");
        }
        else 
        {
          /* 电话格式与短信文字不符合条件时,以Toast提醒 */
          if (isPhoneNumberValid(strDestAddress)==false)
          { /*且字数超过70字符*/
            if(iswithin70(strMessage)==false)
            {
              Toast.makeText
              (
                duan.this, 
                "电话号码格式错误+短信内容超过70字,请检查!!",
                Toast.LENGTH_SHORT
              ).show();
            }
            else
            {
              Toast.makeText
              (
                duan.this,
                "电话号码格式错误,请检查!!" , 
                Toast.LENGTH_SHORT
              ).show();
            }
          }
          /*字数超过70字符*/
          else if (iswithin70(strMessage)==false)
          {
            Toast.makeText
            (
              duan.this, 
              "短信内容超过70字,请删除部分内容!!",
              Toast.LENGTH_SHORT
            ).show();
          }
        }
      }
    }); 
     
  }
  /*检查字符串是否为电话号码的方法,并返回true or false的判断值*/
  public static boolean isPhoneNumberValid(String phoneNumber)
  {
    boolean isValid = false;
    /* 可接受的电话格式有:
     * ^\\(? : 可以使用 "(" 作为开头
     * (\\d{3}): 紧接着三个数字
     * \\)? : 可以使用")"接续
     * [- ]? : 在上述格式后可以使用具选择性的 "-".
     * (\\d{3}) : 再紧接着三个数字
     * [- ]? : 可以使用具选择性的 "-" 接续.
     * (\\d{5})$: 以五个数字结束.
     * 可以比较下列数字格式:
     * (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890  
    */
    String expression = 
    "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5})$";
    
    /* 可接受的电话格式有:
     * ^\\(? : 可以使用 "(" 作为开头
     * (\\d{3}): 紧接着三个数字
     * \\)? : 可以使用")"接续
     * [- ]? : 在上述格式后可以使用具选择性的 "-".
     * (\\d{4}) : 再紧接着四个数字
     * [- ]? : 可以使用具选择性的 "-" 接续.
     * (\\d{4})$: 以四个数字结束.
     * 可以比较下列数字格式:
     * (02)3456-7890, 02-3456-7890, 0234567890, (02)-3456-7890  
    */
    String expression2=
    "^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4})$";
    
    CharSequence inputStr = phoneNumber;
    /*创建Pattern*/
    Pattern pattern = Pattern.compile(expression);
    /*将Pattern 以参数传入Matcher作Regular expression*/ 
    Matcher matcher = pattern.matcher(inputStr);
    /*创建Pattern2*/
    Pattern pattern2 =Pattern.compile(expression2);
    /*将Pattern2 以参数传入Matcher2作Regular expression*/ 
    Matcher matcher2= pattern2.matcher(inputStr);
    if(matcher.matches()||matcher2.matches())
    {
      isValid = true;
    }
    return isValid; 
  }
  
  public static boolean iswithin70(String text)
  {
    if (text.length()<= 70)
    {
      return true;
    }
    else
    {
      return false;
    }
  }
}











目录
相关文章
|
4月前
|
Android开发 C语言
基于Amlogic 安卓9.0, 驱动简说(二):字符设备驱动,自动创建设备
这篇文章是关于如何在基于Amlogic T972的Android 9.0系统上,通过自动分配设备号和自动创建设备节点文件的方式,开发字符设备驱动程序的教程。
84 0
基于Amlogic 安卓9.0, 驱动简说(二):字符设备驱动,自动创建设备
|
4月前
|
自然语言处理 Shell Linux
基于Amlogic 安卓9.0, 驱动简说(一):字符设备驱动,手动创建设备
本文是关于在Amlogic安卓9.0平台上创建字符设备驱动的教程,详细介绍了驱动程序的编写、编译、部署和测试过程,并提供了完整的源码和应用层调用示例。
115 0
基于Amlogic 安卓9.0, 驱动简说(一):字符设备驱动,手动创建设备
|
7月前
|
Android开发
【苹果安卓通用】xlsx 和 vCard 文件转换器,txt转vCard文件格式,CSV转 vCard格式,如何批量号码导入手机通讯录,一篇文章说全
本文介绍了如何快速将批量号码导入手机通讯录,适用于企业客户管理、营销团队、活动组织、团队协作和新员工入职等场景。步骤包括:1) 下载软件,提供腾讯云盘和百度网盘链接;2) 打开软件,复制粘贴号码并进行加载预览和制作文件;3) 将制作好的文件通过QQ或微信发送至手机,然后按苹果、安卓或鸿蒙系统的指示导入。整个过程简便快捷,可在1分钟内完成。
166 6
|
7月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
568 2
|
7月前
|
Android开发
Android 获取本机号码
Android 获取本机号码
96 1
|
Android开发
安卓项目之纸牌游戏之四 游戏规则类
安卓项目之纸牌游戏之四 游戏规则类
80 0
|
安全 Java Android开发
【Android 逆向】APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程
【Android 逆向】APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程
1289 0
|
Java Android开发
android12.0(S) 从SD卡导入vCard文件到通讯录 号码带“-“ 如何把横线去除
android12.0(S) 从SD卡导入vCard文件到通讯录 号码带“-“ 如何把横线去除
166 0
|
存储 SQL Java
Android 通讯录号码匹配规则 SQL
Android 通讯录号码匹配规则 SQL
129 0
|
存储 XML 设计模式
一个简单的Android网络访问全局码判断及通用数据解析方案
我们在开发中,网络请求经常会遇到各种错误码的判断。比如下面这样:
147 0