MobTech短信及语音验证系统是完全免费的短信验证码服务

https://blog.csdn.net/qq_39249422/article/details/79159909

public class TestActivity extends Activity {@BindView(R.id.et_phone)EditText etPhone;@BindView(R.id.btn_click)Button btnClick;@BindView(R.id.btn_submit)Button btnSubmit;private EventHandler eventHandler = new EventHandler() {@Overridepublic void afterEvent(int event, int result, Object data) {//event 具体做的事件类型//result 某个事件结果if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {Log.i("", "afterEvent threadId = " + Thread.currentThread().getId());//目前的事件就是下发验证码短信if (result == SMSSDK.RESULT_COMPLETE) {//发送验证码短信成功  7928Log.i("", "验证码短信发送成功==============");} else {//发送验证码短信失败Log.i("", "验证码短信发送失败==============");}}else if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE){//如果事件类型是校验验证码if (result == SMSSDK.RESULT_COMPLETE){//校验成功Log.i("", "检验验证码短信成功==============");}else{//校验失败Log.i("", "检验验证码短信失败==============");}}super.afterEvent(event, result, data);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_test);ButterKnife.bind(this);//主线程线程id是1Log.i("", "onCreate threadId = " + Thread.currentThread().getId());//发送验证码短信这件事情是否成功SMSSDK.registerEventHandler(eventHandler);//在点击按钮后,可以发送验证码短信给指定手机号btnClick.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String phone = etPhone.getText().toString().trim();SMSSDK.getVerificationCode("86", phone, new OnSendMessageHandler() {@Overridepublic boolean onSendMessage(String country, String phone) {return false;}});}});//短信验证码和手机号匹配校验过程btnSubmit.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//验证码短信3分钟有效SMSSDK.submitVerificationCode("86","18701589847","5807");}});}
}

2 是否是手机号验证

public class SMSUtil {/*** 判断手机号码是否合理*y*/public static boolean judgePhoneNums(Activity activity,String phoneNums) {if (isMatchLength(phoneNums, 11)&& isMobileNO(phoneNums)) {return true;}Toast.makeText(activity, "手机号码输入有误!", Toast.LENGTH_SHORT).show();return false;}/*** 验证手机格式*/public static boolean isMobileNO(String mobileNums) {/** 移动: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、177(1349卫通)* 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9*/String telRegex = "[1][3578]\\d{9}";// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、7、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。if (TextUtils.isEmpty(mobileNums))return false;elsereturn mobileNums.matches(telRegex);}/*** 判断一个字符串的位数** @param str* @param length* @return*/public static boolean isMatchLength(String str, int length) {if (str.isEmpty()) {return false;} else {return str.length() == length ? true : false;}}/*** 权限校验* @param activity*/public static void checkPermission(Activity activity) {if (Build.VERSION.SDK_INT >= 23) {int readPhone = activity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE);int receiveSms = activity.checkSelfPermission(Manifest.permission.RECEIVE_SMS);int readSms = activity.checkSelfPermission(Manifest.permission.READ_SMS);int readContacts = activity.checkSelfPermission(Manifest.permission.READ_CONTACTS);int readSdcard = activity.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);int requestCode = 0;ArrayList<String> permissions = new ArrayList<String>();if (readPhone != PackageManager.PERMISSION_GRANTED) {requestCode |= 1 << 0;permissions.add(Manifest.permission.READ_PHONE_STATE);}if (receiveSms != PackageManager.PERMISSION_GRANTED) {requestCode |= 1 << 1;permissions.add(Manifest.permission.RECEIVE_SMS);}if (readSms != PackageManager.PERMISSION_GRANTED) {requestCode |= 1 << 2;permissions.add(Manifest.permission.READ_SMS);}if (readContacts != PackageManager.PERMISSION_GRANTED) {requestCode |= 1 << 3;permissions.add(Manifest.permission.READ_CONTACTS);}if (readSdcard != PackageManager.PERMISSION_GRANTED) {requestCode |= 1 << 4;permissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);}if (requestCode > 0) {String[] permission = new String[permissions.size()];activity.requestPermissions(permissions.toArray(permission), requestCode);return;}}}
}

短信验证-SMSSDk(Mob开发平台 )相关推荐

  1. Android使用Mob开发平台免费短信验证

    转载请注明住处:http://blog.csdn.net/crazy1235/article/details/41912003 介绍 短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息 ...

  2. Android Studio使用Mob实现短信验证功能遇到的问题解决

    一.Mob短信验证 全球领先的数据智能科技平台-MobTech袤博解决 进行注册登入 登入成功后,点击开发者服务中的短信验证,来到开发者平台 填好信息创建成功就是下图,可以看到对应信息如下(AppKe ...

  3. Android实现第三方Mob短信验证登录以及手机号显示和修改用户名(简易新闻 五)

    Android实现第三方Mob短信验证登录以及手机号显示和修改用户名(简易新闻 五) 关于之前的功能实现可以从制作简易新闻App导航篇中查看 因为这篇是写了有一段时间的博客,所以这篇(包括后面的简易新 ...

  4. 短信验证(手机号注册,绑定手机号获取验证码)

    今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册按钮 ...

  5. Android短信验证(手机号注册,绑定手机号获取验证码)实例

    今天写一个常见的功能--手机app中注册或绑定手机号的获取验证码的功能.也就是短信验证功能 具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册 ...

  6. [Android]手机短信验证功能

    介绍 短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息验证支付等.短信验证利用短信验证码来注册会员,大大降低了非法注册,很大程度上提高了用户账户的安全性. 目前市面上已经有了很多提供 ...

  7. 阿里云短信验证-PHP

    阿里云短信验证-PHP 场景:平台注册,登陆短信验证 参考阿里官方教程 阿里云短信验证-快速入门 前提条件: 产品->云计算产品->短信服务 开通短信服务 创建AccessKey 申请短信 ...

  8. php中短信验证大致流程,实现php手机短信验证功能的基本思路

    现在很多网站为了避免用户烂注册,都在注册环节添加有手机短信验证功能,用户注册时需要短信验证码才可以,那么这种手机短信验证功能是如何实现的呢?其基本思路是什么呢?下面乐信小编就来为大家介绍下: 实现手机 ...

  9. Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自动填入功能结合实例)

    用户注册或者找回密码时一般会用到短信验证功能,这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注册用户.获取SDK 大家可以 ...

  10. Android 短信验证 SDK 接入(Mob SMSSDK)

    博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/ ...

最新文章

  1. 让我们讨论一下变量,以及为什么要在JavaScript中使用它们。
  2. visual studio 运行java_Visual Studio 支持 Java?谣言止于智者
  3. PyTorch 官方教程发布,限时免费开放!
  4. 4种动态加载JS的方法
  5. 基于 Docker 打造前端持续集成开发环境
  6. 使用VMware克隆Linux系统
  7. JVM 面试知识整理
  8. RocketMQ系列实战
  9. js 对象深拷贝_javascript深拷贝与浅拷贝
  10. com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lang/String;Ljava/lang/String;)J
  11. HCIE-Datacom V1.0 考试大纲
  12. modbus软件开发linux,Linux C开发之用modbus实现串口通讯
  13. Apache jmeter 压测
  14. 2021年焊工(初级)考试总结及焊工(初级)模拟考试题
  15. 【回眸】牛客网刷刷刷!嵌入式软件中也会遇到的嵌入式硬件,通讯,通讯协议专题(一)
  16. 网桥15式:无线网桥用得好,成本的降低少不了
  17. keep-alive是什么?
  18. Hive_处理NULL的几个函数 NVL, COALESCE, NULLIF
  19. 基于传感器时钟跟踪的ADS-B异常和入侵的检测
  20. Android录音,PCM音频数据打包成AAC

热门文章

  1. 苏宁成立快递员节PK京东封杀快递,谁的做法更聪明?
  2. python基础随机数模块生成银行卡密码
  3. 命名实体识别NER探索(5) Bert+BiLSTM+CRF模型实战应用
  4. AE效果:3D 通道
  5. 训练集(training)、验证集(validation)和测试集(test)
  6. 非线性调频信号matlab仿真,线性调频信号回波仿真
  7. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(一)——绪论
  8. 状态空间模型与传递函数的转换关系+例题
  9. ios 音频录音、上传至7牛、播放及其与android兼容的问题
  10. 【Altium Designer2018设计简单的PCB文件实例】