尽管短信SDK提供简化集成步骤的GUI功能,单页同样允许开发者放弃使用这套GUI,直接用核心代码进行交互,Mob安卓发送短信验证码无GUI接口服务使用方法和注意事项有哪些呢?
首先下载并集成Mob短信SDK,集成方式可参见Mob短信快速集成文档。
注意:如果版本等于2.0.1,要将SMSSDK的res下的raw复制到你的工程的res下;另外有些较老的版本需要复制libsmssdk.so。2.1.2开始(包括)eclipse不再需要配置so。
其中对外主要的类有:SMSSDK和EventHandler,所有的操作都通过SMSSDK来发起,并通过EventHandler来接收。
初始化接口
限定符和类型 |
方法和说明 |
static void |
registerEventHandler(EventHandler handler) |
static void |
unregisterEventHandler(EventHandler handler) |
registerEventHandler用来往SMSSDK中注册一个事件接收器,SMSSDK允许开发者注册任意数量的接收器,所有接收器都会在事件 被触发时收到消息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
EventHandler eh=new EventHandler(){
@Override public void afterEvent(int event, int result, Object data) {
if (result == SMSSDK.RESULT_COMPLETE) { //回调完成 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { //提交验证码成功 }else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){ //获取验证码成功 }else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){ //返回支持发送验证码的国家列表 } }else{ ((Throwable)data).printStackTrace(); } } }; SMSSDK.registerEventHandler(eh); //注册短信回调 |
registerEventHandler必须和unregisterEventHandler配套使用,否则可能造成内存泄漏。
2.2、短信验证码接口
限定符和类型 |
方法和说明 |
static void |
getSupportedCountries() |
static void |
getVerificationCode(String country, String phone) |
static void |
submitVerificationCode(String country, String phone, String code) |
其中OnSendMessageHandler的定义如下,这个Handler的用途是在发送短信之前,开发者自己执行一个操作,来根据电话号码判断是否需要发送短信
1 2 3 4 5 6 7 8 9 |
public interface OnSendMessageHandler { /** * 此方法在发送验证短信前被调用,传入参数为接收者号码 * 返回true表示此号码无须实际接收短信 */
public boolean onSendMessage(String country, String phone);
} |
短信SDK并不能支持世界上所有国家的短信验证服务,因此Mob短信验证码SDK提供了getSupportedCountries方法,在使用短信验证码功能前请调用此方法,获取当前SDK可以支持的国家列表和号码匹配规则。getVerificationCode用于向服务器请求发送验证码的服务,需要传递国家代号和接收验证码的手机号码,支持此服务的国家代码在 getSupportedCountries中获取。请求getVerificationCode的时间间隔不应该小于60秒,否则服务端会返回“操作过 于频繁”的错误。
submitVerificationCode用于向服务器提交接收到的短信验证码,验证成功后会通过EventHandler返回国家代码和电话号码。
以上就是Mob安卓端发送短信验证码无GUI接口使用方法和注意事项,如果你想了解有界面的操作方法,请参考 [短信SDK集成文档] 相关章节的说明。