android app --- 快速集成SharaSDK ,SMS实现短信验证(一)2.0版之前


官方刚刚推出了  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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
随着各行业日益发展,行业中的业务,管理模式也不但在变化,随之行业中的息化软件也要随之而变化,增加、删除或修改某些功能,这就意味要花大量的时间和精力去编写或修改源代码来更新升级软件,软件更新升级完后还需要给每个客户机去重新安装,不能达到实时更新升级的目的。然而这种模式已经不太适合现在的软件开发模式,随着软件行业的发展,软件配置化模式理所应当替代了陈旧的开发模式,从而节约了大量的时间和精力去修改源代码,大大的提高了工作效率。 系统集成应用及快速开发平台(SIDS系统简称)是具有一个高效灵活,集成应用,开发于一体的系统平台,打破了传统的软件开发模式,实现了完全配置化,使原本需要大量的时间和精力去开发或者修改的软件,应用系统集成应用及快速开发平台只需要配置SQL语句或者参数配置就能完成业务,软件上的逻辑操作,花少量的时间和精力就能完成开发和修改的工作,大大的提高了工作效率,降低了大量的成本。 一. 系统集成应用及快速开发平台特点介绍 1. 用户能在平台SIDS中任意建立菜单(一级菜单、二级菜单等)。 2.根据业务的发展用户可以在平台中开发任何功能模块或者修改某些功能模块。 3. 引用和平台SIDS相关的DLL(用户图形界面)文件,以达到软件升级的目的。 4. 在局域网内任何一台客户端都可以作为应用程序服务器, 其他的客户端可以下载服务器端列表中的文件, 实现无障碍在线升级。 5.包含一个强大的报表系统,根据用户定制的要求可以开发任何查询报表。 6.包含一个强大的报表模板设计工具,根据用户定制的要求设计任何样式的报表模板。 7.定时自动执行按键功能。 8.可以调用其他应用程序。 9.支持进入系统后自动弹出一个或多个界面。 10.支持实时升级。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值