跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

Android集成文档

概述

SDK 支持 Android 4.0 及以上版本的手机系统。SDK 压缩包包含:a) Android SDK 集成文档;b) UMSMSDemo 工程;c) umeng-sms-v1.0.0.aar;注:首选需要集成友盟基础组件,集成文档

运行 demo 工程

解压后包含 UMSMSDemo 工程,需要将包名,appKey,秘钥等修改为您自己的。

开发环境搭建

1)引入相关依赖下载 SDK 并解压后,将 aar 拷贝至工程的 libs 目录下。强依赖包:

  1. umeng-sms-1…aar

  2. umeng-common-9…jar

  3. umeng-asms-armeabi-v1…aar

2)混淆 keep 规则

-keep class com.umeng.**{*;}
-keepclassmembers class*{
public<init>(org.json.JSONObject);
}
-keepclassmembers enum*{
publicstatic**[] values();
publicstatic** valueOf(java.lang.String);
}

3)权限声明

<uses-permissionandroid:name="android.permission.INTERNET"/>
<!--网络访问-->
<uses-permission
android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--检查wifi网络状态-->
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--检查网络状态-->
<uses-permission
android:name="android.permission.CHANGE_NETWORK_STATE"/>
<!--切换网络通道-->

4)初始化 common 库

/*
* 0.在 Application 的 onCreate 方法中初始化 Appkey 等信息
*/
UMConfigure.init(this,"替换为 Appkey,服务后台位置:应用管理 -> 应用信息 -> Appkey",
"渠道信息",UMConfigure.DEVICE_TYPE_PHONE,"");

SDK 方法说明

3.1 setSMSSDKInfo

/**
* 该接口为初始化配置接口,主要是检测一些配置信息,如果配置错误将会初 始化失败,将会打印错误日志。
* 调用其它接口前必须先调用该接口,仅且仅需调用一次,建议在 Application 或初始 Activity 中调用。
* 注:在公共组件 common 初始化(即 UMConfigure.init)后调用
* @param context   Android上下文
* @param appSecret 平台配置的秘钥
*/
publicstaticvoid setSMSSDKInfo(Context context,String appSecret)

调用示例:

publicclassBaseApplicationextendsApplication{
@Override
publicvoid onCreate(){
super.onCreate();
UMConfigure.init(this,"appkey","渠道信息",UMConfigure.DEVICE_TYPE_PHONE,null);
UMSMS.setSMSSDKInfo(this,"秘钥");
}}

3.2 getVerificationCode

/**
* 该接口为获取验证码接口,在非 UI 线程回调。
* @param phoneNumber 用户的手机号码,中国为 11 位的手机号码。
* @param tempId      短信模板 Id
* @param listener    回调接口
*/
publicstaticvoid getVerificationCode(finalString phoneNumber,finalString tempId,
finalUMSMSCodeListener listener)

调用示例:

UMSMS.getVerificationCode(mPhoneET.getText().toString().trim(),"1",newUMSMSCodeListener(){
@Override
publicvoid getCodeSuccess(finalString ret){
MainActivity.this.runOnUiThread(new
Runnable(){
@Override
publicvoid run(){
            mResT.setText(ret);
}
});}
@Override
publicvoid getCodeFailed(finalint errCode,finalString errMsg){
MainActivity.this.runOnUiThread(newRunnable(){
@Override
publicvoid run(){
                mResT.setText(errCode +":"+errMsg);
}});
}
});

返回结果示例

{"success":true,
"data":{"token":"9b63ea094b37f4453242df1b77a46929","score":null,"veri
fyStatus":null},
"code":2001,
"message":"gain mobile&#39;s result success",
"requestId":"49B4BB74-98C3-4287-AA65-243E8B68D4A3"}

返回值 success 为 true 即为发送成功,具体可参看 demo 工程

3.3 commitVerificationCode

/**
* 该接口为验证码验证接口,在非 UI 线程回调。
* @param phoneNumber 用户的手机号码,中国为 11 位的手机号码。
* @param code        短信验证码
* @param listener    回调接口
*/
publicstaticvoid commitVerificationCode(finalString phoneNumber,
finalString code,finalUMSMSCheckListener listener)

调用示例:

UMSMS.commitVerificationCode(mPhoneET.getText().toString().trim(),
mCodeET.getText().toString().trim(),newUMSMSCheckListener(){
@Override
publicvoid checkCodeSuccess(finalString ret){
MainActivity.this.runOnUiThread(newRunnable(){
@Override
publicvoid run(){
                                mResT.setText(ret);
}
});
}
@Override
publicvoid checkCodeFailed(finalint errCode,finalString errMsg){
MainActivity.this.runOnUiThread(newRunnable(){
@Override
publicvoid run(){
                mResT.setText(errCode +":"+errMsg);
}
});
}
});

返回结果示例

{"success":true,
"data"{"token":"49137ea819a99b894f5f535f632bf8f9","score":null,"verif
yStatus":true},
"code":2002,
"message":"gain mobile&#39;s result and single evaluation score",
"requestId":"60BEE997-7B46-4DC3-AFAC-FEDC668ACD17"}

返回值success为true且data中的verifyStatus为true即为验证成功,具体可参看demo工程

返回码

返回码

说明

-10001

请输入有效手机号

-10002

短信模板不能为空

-10003

验证码不能为空

-10004

请先集成并初始化公共组件(UMConfigure.init)

-10005

请先设置setSMSSDKInfo 接口

-10006

Android上下文不能为空

-10007

秘钥不能为空

-10008

请检查网络

-3201

手机号码不应为空

-3202

短信模版id不应为空

-3203

vcode 不应为空

-3204

token 不应为空

-2201

系统异常

-2202

请求超时