Mob官网:http://www.mob.com/#/
SDK–>SMS For Android
官方教程:
http://wiki.mob.com/android-%E7%9F%AD%E4%BF%A1sdk%E9%9B%86%E6%88%90%E6%96%87%E6%A1%A3/
Java代码:
package com.example.x.sms_text;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import org.json.JSONException;
import org.json.JSONObject;
import cn.smssdk.EventHandler;
import cn.smssdk.SMSSDK;
public class MainActivity extends Activity implements View.OnClickListener {
EditText editText2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn1).setOnClickListener(this);
findViewById(R.id.btn2).setOnClickListener(this);
SMSSDK.initSDK(this, App Key, App Secret);//官网申请
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) {
//提交验证码成功
//验证码正确,执行后续操作
System.out.println("提交成功");
}else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE){
//获取验证码成功
System.out.println("获取成功");
}else if (event ==SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES){
//返回支持发送验证码的国家列表
System.out.println("国家列表");
}
}else if (result == SMSSDK.RESULT_ERROR) {
//验证码错误
System.out.println("验证失败");
Throwable throwable = (Throwable) data;
throwable.printStackTrace();
JSONObject object;
try {
object = new JSONObject(throwable.getMessage());
System.out.println(object.optInt("status"));//错误代码
System.out.println(object.optString("detail"));//错误描述
} catch (JSONException e) {
e.printStackTrace();
}
}
else{
//其他错误
((Throwable)data).printStackTrace();
}
}
};
SMSSDK.registerEventHandler(eh); //注册短信回调
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn1:
getMsg();
break;
case R.id.btn2:
sendMsg(editText2.getText().toString());
break;
}
}
public static void getMsg() {
//获取验证码
SMSSDK.getVerificationCode("86","18000000000");
}
public static void sendMsg(String code){
//提交验证码
SMSSDK.submitVerificationCode("86","18000000000",code);
}
}
build.gradle(Module:app)添加如下代码:
repositories{
flatDir{
dirs 'libs' //就是你放aar的目录地址
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/MobCommons-2016.0714.1402.jar')
compile files('libs/MobTools-2016.0714.1402.jar')
compile name:'SMSSDK-2.1.1',ext:'aar'//添加
compile name:'SMSSDKGUI-2.1.1',ext:'aar'//添加
}
xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.x.sms_text.MainActivity">
<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20dp"
android:hint="bb"/>
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20dp"
android:text="submit1"
/>
<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20dp"
android:text="submit2"
/>
</LinearLayout>
权限:
<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.READ_SMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />