//短信验证在真实开发中的思想逻辑:
//我们得到用户的手机号,
// 通过网络把用户的手机号发送给服务器,
// 然后由服务器把短信验证码发给客户端,
// 客户端填写好了验证码,
//我们通过网络请求把用户手机号和用户填写的验证码发送给服务器
//服务器逻辑:
//会把得到的数据,进行对比,如果没有问题,
//返回给客户端登陆或者注册成功的数据;
//也就是说真实开发中大部分业务逻辑由服务器去完成,
// 我们客户端无法在用户输入手机号的时候,
// 进行正则表达式的格式规范,以及后续的网络操作;
下载完成后进入
//看这个文档来做项目;
找到jar包复制到libs包下
第二步:
第三部:AndroidManifest.XML中
最后代码中:MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
// 如果希望在读取通信录的时候提示用户,可以添加下面的代码,
//并且必须在其他代码调用之前,否则不起作用;如果没这个需求,可以不加这行代码
// SMSSDK.setAskPermisionOnReadContact(boolShowInDialog);
// 创建EventHandler对象
eventHandler = new EventHandler() {
public void afterEvent(int event, int result, Object data) {
if (data instanceof Throwable) {
Throwable throwable = (Throwable) data;
String msg = throwable.getMessage();
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
} else {
if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
// 处理你自己的逻辑
}
}
}
};
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//打开注册界面
RegisterPage registerPage = new RegisterPage();
registerPage.setRegisterCallback(eventHandler);
//显示注册的面板
registerPage.show(MainActivity.this);
}
});
// 注册监听器
SMSSDK.registerEventHandler(eventHandler);
} @Override
protected void onDestroy() {
super.onDestroy();
SMSSDK.unregisterEventHandler(eventHandler);
} private void initView() {
tv = (TextView) findViewById(R.id.tv);
}
}
完成后实现点击事件:(下面可以获取手机号和国家)
// 处理你自己的逻辑
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {
//解析注册结果,进行判断是否成功
HashMap<String, Object> PhoneMap = (HashMap<String, Object>) data;
//得到手机的注册国家
String country = (String) PhoneMap.get("country");
//得到手机的注册国家
String phone = (String) PhoneMap.get("phone");
System.out.println("国家" + country + "手机信息" + phone);
//网络把得到数据发送给我们自己的服务器,那么整个流程就走完.
}
点击进入显示的界面