1.Mob官网
2.使用3.0版本以下的(因为简单)
3.按照集成路径开始集成
public class RegisterActivity extends BaseAcitivty implements View.OnClickListener {
private String TAG="msg";
private EditText edtRegisterPhone,edtRegisterPassword,edtRegisterCode;
private Button btnRegisterCode,btnRegisterSend;
private Timer timer;
private int count=60;
private TextView fanhui;
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
int size= (int) msg.obj;
if (size>0){
btnRegisterCode.setText(size+"秒后获取验证码");
btnRegisterCode.setEnabled(false);
}
else{
btnRegisterCode.setEnabled(true);
btnRegisterCode.setText("重新获取验证码");
if (timer != null) {
timer.cancel();
}
count = 60;
} } };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
initView();
btnRegisterCode.setOnClickListener(this);
btnRegisterSend.setOnClickListener(this);
fanhui.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { finish(); } }); }
private void initView() {
edtRegisterPhone= (EditText) findViewById(R.id.edt_register_phone);
edtRegisterPassword= (EditText) findViewById(R.id.edt_register_password);
edtRegisterCode= (EditText) findViewById(R.id.edt_register_code);
btnRegisterCode= (Button) findViewById(R.id.btn_register_code);
btnRegisterSend= (Button) findViewById(R.id.btn_register_send);
fanhui= (TextView) findViewById(R.id.fanhui); }
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_register_code:
String phone = edtRegisterPhone.getText().toString().trim();
if (!checkPhone(phone)) {//对手机号是否正确进行正则表达式校验
Toast.makeText(this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
} else {
EventHandler eh = new EventHandler() {
@Override
public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE) {
Log.i(TAG, "afterEvent: 回调完成"); //回调完成
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
Log.i(TAG, "afterEvent: 提交验证码成功"); // 校验成功,可以把数据提交给服务器,做跳转 // 提交验证码成功
}
else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
Log.i(TAG, "afterEvent: 获取验证码成功"); //获取验证码成功
} else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {
Log.i(TAG, "afterEvent: 返回支持发送验证码的国家列表"); //返回支持发送验证码的国家列表
} } else { ((Throwable) data).printStackTrace(); } } };
SMSSDK.registerEventHandler(eh); //注册短信回调
SMSSDK.getVerificationCode("+86", phone);
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if (count > 0) {
count--;
}
Message msg = Message.obtain();
msg.obj = count; mHandler.sendMessage(msg); } }, 0, 1000); }
break;
case R.id.btn_register_send:
String Phone=edtRegisterPhone.getText().toString().trim();
String code=edtRegisterCode.getText().toString().trim();
SMSSDK.submitVerificationCode("86",Phone,code);
Intent intent=new Intent(RegisterActivity.this,MainActivity.class);
startActivity(intent);
break;
} }
private boolean checkPhone(String phone) { return CheckUtils.isPhone(phone); } }
public class CheckUtils {
/**
* 验证手机格式
*/
public static boolean isPhone(String phone) {
/*
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9
*/
String num = "[1][358]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
if (TextUtils.isEmpty(phone)) {
return false;
} else {
//matches():字符串是否在给定的正则表达式匹配
return phone.matches(num);
}
}
}