官方刚刚推出了 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/
有兴趣可以看下,不知道好使不。

更多相关文章

  1. Android日志打印类LogUtils,能够定位到类名,方法名以及出现错误的
  2. 对于Android DEX文件详细说明
  3. 利用Android SDK免root权限抓屏
  4. android webview处理h5打开本地文件浏览器的功能
  5. android系统文件的权限
  6. Android通知MediaScanner扫描指定的文件
  7. 跟Google学写代码:Android运行时权限处理

随机推荐

  1. android Glide简单使用
  2. 在Android平台上实现条型码扫描与识别
  3. Android2.3发布
  4. Android 布局之LinearLayout和RelativeLa
  5. Android 2.2新增Widget之ProtipWidget源
  6. Android启动脚本init.rc
  7. 布局中文件中【控件间距参数详解以及单位
  8. MediaRecorder视频的录制和播放
  9. Android(安卓)+ eclipse +ADT安装完全教
  10. Android开发者e周报 第1期