一、得到用户Appkey和AppSecret

1、在Eclipse中创建新项目(AndroidStudio相同)记下包名,包名在mob后台创建应用的时候需要。这个一定要切记!

2、登陆mob.com短信验证平台开发者服务平台注册成为开发者,并创建应用。

1)选择系统的版本,Android或者ios;

2)填写应用名称,下载地址,选择应用的详细分类;

3)在开发模式完成后,正式上线的时候还需要上传应用的签名,这里就用到了上面的包名,最好不要后期修改,否则很是麻烦,需要做大篇幅的修改。

3、得到用户Appkey和AppSecret,在你创建了新的应用的时候他会给出你对应的应用的Appkey和AppSecret。如果后期需要再进入mob.com查看Appkey和AppSecret的时候就需要点击对应的应用名字---应用管理----应用信息,在这里可以看到应

用的所有信息,并且也可以对应用的部分信息进行修改。


4、下载SDK,地址:http://sms.mob.com/Download

下载的压缩包,解压后就能得到两个文件,一个是官方提供的sample,另一个是需要在自己项目中引用的项目文件。

二、客户端配置

1、从官方下载的sdk中导入eclipse,把SMSSDK这个项目整体导入eclipse,并把它作为library在自己所创建的项目中引用。其中SMSSDK是官方提供的一个引用资源文件,这个是目前常见的一种方式,因为这样省去了在自己的项目中大量的添加jar包,造成本身项目的体积不断膨胀变大,使其加载速度变慢,同时还会因为有的jar包只是用到里面的很少一部分,但是却添加的是整个jar包,造成体积冗余,资源浪费。

导入:


引用:

按照以下步骤一步步的把需要用到的资源文件引用到自己的项目

Window--------preferences---------android----右侧library-------Add------选择SMSSDK----------Apply---------ok


2、打开配置文件,添加相应的权限

其中有比较常见的网络权限,通讯录权限,短信权限等

这些直接复制,黏贴进自己的项目就可以,都是必须要的,没什么可说的

<uses-permissionandroid:name="android.permission.READ_CONTACTS"/>

<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permissionandroid:name="android.permission.INTERNET"/>

<uses-permissionandroid:name="android.permission.RECEIVE_SMS"/>

<uses-permissionandroid:name="android.permission.GET_TASKS"/>

<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>


3、在application中添加mob.com的Activity,这个是在官方类库中提供的,但是因为在个人项目中需要调用,所以需要在配置文件中单独声明一下。

这个要特别提醒一下,千万不要忘了,不然会提示空指针异常或者是没有找到cn.smssdk.SMSSDKUIShell,这样你的项目就不能运行了,如果出现了这样的错误提示,可以直接到配置文件中看看有没有漏掉这一步。

<activity

android:name="cn.smssdk.SMSSDKUIShell"

android:configChanges="keyboardHidden|orientation|screenSize"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:windowSoftInputMode="stateHidden|adjustResize"/>

下面的也是在配置文件中需要声明的,不过这个是他们官方用来进行统计数据用得到的

<!--统计用,service用于保证一定能够向服务器上传数据-->

<service

android:name="cn.sharesdk.analysis.server.RemoteService"

android:process=":remote"/>

三、方法调用

初始化短信SDK

privatevoidinit(){

MyUtils.initInfor(this);

SMSSDK.initSDK(this,app_key,app_secret);

finalHandlerhandler=newHandler(this);

EventHandlereventHandler=newEventHandler(){

publicvoidafterEvent(intevent,intresult,Objectdata){

Messagemsg=newMessage();

msg.arg1=event;

msg.arg2=result;

msg.obj=data;

handler.sendMessage(msg);

}

};

//注册回调监听接口

SMSSDK.registerEventHandler(eventHandler);

flag=true;

//获取新好友个数

showDialog();

SMSSDK.getNewFriendsCount();

}

请求短信验证码

btn.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewv){

//TODOAuto-generatedmethodstub

str_phone=phone.getText().toString();

if(str_phone.equals(""))

{

Toast.makeText(getApplicationContext(),"请输入手机号",Toast.LENGTH_SHORT).show();

}

elseif(!MyUtils.isMobileNO(str_phone))

{

Toast.makeText(getApplicationContext(),"请输入正确的手机号格式",Toast.LENGTH_SHORT).show();

}

else

{

//下面的代码就是调用sdk的发送短信的方法,其中的“86”是官方中定义的,代表中国的意思

//第二个参数表示的是需要发送短信的手机号

SMSSDK.getVerificationCode("86",str_phone);

str_str_phone=str_phone;

//发送短信之后验证码的按钮才能激活

btn_.setBackgroundColor(0xff000000);

btn_.setClickable(true);

//10秒钟内不可重点此按钮

time.start();

}

}

});

验证短信验证码是否正确

SMSSDK.submitVerificationCode("86",str_str_phone,str_captcha);

EventHandlereh=newEventHandler()

{

@Override

publicvoidafterEvent(intevent,intresult,Objectdata){

if(result==SMSSDK.RESULT_COMPLETE)

{

runOnUiThread(newRunnable()

{

publicvoidrun()

{

Toast.makeText(getApplicationContext(),"验证成功!你可以修改密码了",Toast.LENGTH_SHORT).show();

btn_.setBackgroundColor(0xffcccccc);

btn_.setClickable(false);

}

});

}

else

{

runOnUiThread(newRunnable()

{

publicvoidrun()

{

Toast.makeText(getApplicationContext(),"验证码错误!",Toast.LENGTH_SHORT).show();

btn_.setBackgroundColor(0xffcccccc);

btn_.setClickable(false);

}

});

((Throwable)data).printStackTrace();

}

}

};

SMSSDK.registerEventHandler(eh);//注册短信回

判断字符串是不是手机号码的正则表达式

publicstaticbooleanisMobileNO(Stringmobiles){

/*

*移动: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、(1349卫通)

*总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9

*/

StringtelRegex="[1][3578]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。

if(TextUtils.isEmpty(mobiles))

returnfalse;

else

returnmobiles.matches(telRegex);

}

打开通信录好友列表页面

//这个界面的sdk自带风格不难看,没有修改必要

privatevoidopenFriendsUI(){

ContactsPagecontactsPage=newContactsPage();

contactsPage.show(this);

}

防止多次请求验证码的计时器

privateButtonchecking;

publicTimeCount(longmillisInFuture,longcountDownInterval,Buttonchecking)

{

super(millisInFuture,countDownInterval);//参数依次为总时长,和计时的时间间隔

this.checking=checking;

}

@Override

publicvoidonFinish()

{

//计时完毕时触发

checking.setText("重新验证");

checking.setClickable(true);

checking.setBackgroundColor(0xff000000);

}

@Override

publicvoidonTick(longmillisUntilFinished){

//计时过程显示

checking.setClickable(false);

checking.setBackgroundColor(0xffcccccc);

checking.setText(millisUntilFinished/1000+"秒后重新验证");

}

主要功能

本服务的主要功能是发送短信验证码和获取联系人列表


1、发送短信验证码

选择国家,输入手机号,就能得到短信验证码

无需与短信平台合作的繁琐手续,SDK快速集成,集成便捷。省去了自己去跟运营商谈合作,谈接口等各种繁琐的步骤

先试试发短信功能,会提示你要发送的某个手机的手机号,这里是提示你乙方发错了,就是一个最终的确定,如果不正确可以取消小,重新输入正确的手机号码。

如果点击好这时SDK就会向服务器提交请求,然后服务器根据你提交的信息发送短信到指定手机上,从而实现手机的定点短信发送。向服务器发送请求后,准备接收短信,这里有个缓冲界面,因为发送短信毕竟也需要一个时间间隔,同时也不能一直不间断的发送,那样就成了垃圾短信了,也不符合我们的初衷。


接收到了短信,最终的结果出现了,这个就是我们的终极结果,短信。得到了短信就有了验证码,我们就可以在我们的app中实现自己需求,完成相应的功能效果。


2、邀请通讯录好友使用app,这个是获取通讯录联系人列表后的结果,可以读取到手机上的所有联系人,极大的方便了app的推广,快速匹配通讯录好友,建立自己的朋友圈。