android app --- 快速集成SharaSDK ,SMS实现短信验证(一)2.0版之前
16lz
2021-01-23
官方刚刚推出了 SMS For Android v2.0.1
上网址:http://www.mob.com/#/index
2.0.1版本的推出,最大的亮点在于提供了对android studio 的支持,之前的版本都是eclipse的,用在AS上,AS增加依赖库是个让人很头疼的事情。
集成依赖库让人头疼,但总有大神有解决方案,下面就简单介绍一下AS下不用依赖库,不用2.0.1之后推出的对AS的支持,也能快速集成短信验证的方法。(本方法非原创,由SharaSDK 官方论坛某个大神帖子中看到,如有不妥之处,请联系博主删除)
我们下载的官方SDK,里面大多包含.jar 架包 ,和各种.so 文件,重点就在这里。
1.复制.jar文件到 AS的lib目录下,复制.so文件,到java文件同级目录下。(.so文件记得要创建一个jniLibs文件夹)
轻松两步,就集成了SharaSDK的短信验证,比集成支持库要方便很多倍。
下面开始贴一些配置和代码逻辑
//发验证权限<!-- <uses-permission android:name="android.permission.READ_CONTACTS" />--> <uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.RECEIVE_SMS" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
这些是获取短信的权限,可以看到把第一个权限禁止掉了,第一个权限是获取联系人的权限,发短信验证,不需要这个权限。(因为他在老是提示正在获取联系人信息)
上代码:
在使用的类里面先初始化下。
SMSSDK.initSDK(ZhuceActivity.this, "c6670846d84e", "393243ef580bc4fd8b539a334fd488e6");
EventHandler eh = new EventHandler() { @Override public void afterEvent(int event, int result, Object data) { Message msg = new Message(); msg.arg1 = event; msg.arg2 = result; msg.obj = data; handler.sendMessage(msg); }};SMSSDK.registerEventHandler(eh);
getname = nameEdit.getText().toString().trim();// 1. 通过规则判断手机号if (!judgePhoneNums(getname)) { return;}SMSSDK.getVerificationCode("86", getname);btn_getSMS.setClickable(false);btn_getSMS.setText("再次输入倒计时" + "(" + i + ")");new Thread(new Runnable() { @Override public void run() { for (; i > 0; i--) { handler.sendEmptyMessage(-9); if (i <= 0) { break; } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } handler.sendEmptyMessage(-8); }}).start();
这段代码用来获取验证码,可以放在一个点击事件中。
Handler handler = new Handler() { public void handleMessage(Message msg) { if (msg.what == -9) { btn_getSMS.setText("重新发送(" + i + ")"); } else if (msg.what == -8) { btn_getSMS.setText("获取验证中"); btn_getSMS.setClickable(true); i = 30; } else { int event = msg.arg1; int result = msg.arg2; Object data = msg.obj; System.out.println("result:" + result + ",,event:" + event); if (result == SMSSDK.RESULT_COMPLETE) { if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { Toast.makeText(ZhuceActivity.this, "验证成功", Toast.LENGTH_SHORT).show(); Log.e("LOG", "验证成功-----------------------"); //这里写验证成功后程序的流程,一般在这里要调用注册或者登陆接口 } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { Toast.makeText(ZhuceActivity.this, "验证已发送", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(ZhuceActivity.this, "验证错误", Toast.LENGTH_SHORT).show(); ((Throwable) data).printStackTrace(); } } else { Toast.makeText(ZhuceActivity.this, "验证失败", Toast.LENGTH_SHORT).show(); } } }};
在提交验证码的时候(第二个参数为手机号,第三个参数为你收到验证码)
SMSSDK.submitVerificationCode("86", getname, verification_code);
这步之后,进入上面的handler中,提交验证码验证正确与否。
到此,整个的短信集成和验证流程就结束了。
原创文章,转载请注明出处: http://blog.csdn.net/qq_33078541?viewmode=contents
随后看下2.0.1官方出的AS集成方式,看文档写的貌似更简单了,复制四个就可以了。 http://wiki.sharesdk.cn/android-%E7%9F%AD%E4%BF%A1sdk%E9%9B%86%E6%88%90%E6%96%87%E6%A1%A3/
有兴趣可以看下,不知道好使不。
更多相关文章
- Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的
- 对于Android DEX文件详细说明
- 利用Android SDK免root权限抓屏
- android webview处理h5打开本地文件浏览器的功能
- android系统文件的权限
- Android通知MediaScanner扫描指定的文件
- 跟Google学写代码:Android运行时权限处理