知方号

知方号

android开发学习<免费获取短信激活码>

android开发学习

模仿一些网站在注册的时候要填写手机号码,然后点击获取激活码,将会产生一个激活码,用短信的方式发到注册者的手机,然后用户需要查看短信,将激活码填写在注册页面,有时间限制。若超时则需要重新发送。 

strings.xml,其代码如下:

[html]  view plain copy              Hello World, SendregActivity!       发送验证码       注册       我已阅读并接受:《百度用户协议》             

color.xml,其代码如下:

[html]  view plain copy          #87CEEB      

main.xml,其代码如下:

[html]  view plain copy                                                                                                                                                                                                                                                                                                              

下面来看主Activity文件,其内容如下:下面来看Activity文件,其代码如下:

[html]  view plain copy import java.util.logging.Logger;      import java.util.regex.Matcher;   import java.util.regex.Pattern;      import android.app.Activity;   import android.app.PendingIntent;   import android.content.Intent;   import android.os.Bundle;   import android.os.CountDownTimer;   import android.telephony.gsm.SmsManager;   import android.telephony.gsm.SmsMessage;   import android.view.View;   import android.view.View.OnClickListener;   import android.widget.Button;   import android.widget.CheckBox;   import android.widget.EditText;   import android.widget.TextView;   import android.widget.Toast;      public class SendregActivity extends Activity {       /** Called when the activity is first created. */               Button sendnumber,send;       EditText phone,pwd,number;       String temp="";       String phonenum="";       CheckBox agree;       TimeCount timeco;       TextView timecount;       @Override       public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.main);           sendnumber=(Button) findViewById(R.id.sendnumber);           send=(Button) findViewById(R.id.send);           phone=(EditText) findViewById(R.id.phone);           pwd=(EditText) findViewById(R.id.paw);           number=(EditText) findViewById(R.id.number);//激活码           agree=(CheckBox) findViewById(R.id.agree);           timecount=(TextView) findViewById(R.id.counttime);           timeco = new TimeCount(120000, 1000);//时间为120秒           sendnumber.setOnClickListener(new OnClickListener() {                              @Override               public void onClick(View v) {                   // TODO Auto-generated method stub                   for(int i=0;i0){           Pattern p = Pattern.compile("^((13[0-9])|(15[0-3])|(15[7-9])|(18[0,5-9]))\d{8}$");                m= p.matcher(mobiles);                }           else{                               return false;           }           return m.matches();            }        /* 定义一个倒计时的内部类 */       class TimeCount extends CountDownTimer {       public TimeCount(long millisInFuture, long countDownInterval) {       super(millisInFuture, countDownInterval);//参数依次为总时长,和计时的时间间隔       }       @Override       public void onFinish() {//计时完毕时触发      temp="";      Toast.makeText(SendregActivity.this, "超时,需要重新发送激活码!", Toast.LENGTH_LONG).show();       }       @Override       public void onTick(long millisUntilFinished){//计时过程显示             timecount.setText("倒计时:"+millisUntilFinished /1000+"秒");       }       }   }  

程序要调用SmsManager来发送短信,因此还需要授予改程序发送短信的权限,也就是在AndroidManifest.xml文件中增加如下代码:

[html]  view plain copy    补充:需要用户支付短信费用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。