把jar包放到Libs下
先把布局代码贴上
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.liu.administratorexample.massege_demo.View.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="60dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机号:" android:textColor="#222222" android:textSize="16sp" /> <EditText android:id="@+id/edname" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:background="@null" android:drawablePadding="10dp" android:hint="请输入手机号" android:inputType="phone" android:lines="0" android:maxLength="11" android:paddingBottom="10dp" android:paddingLeft="20dp" android:paddingTop="10dp" android:text="" android:textColor="@android:color/black" android:textColorHint="#cccccc" android:textSize="16sp" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="@android:color/darker_gray" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="10dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="验证码:" android:textColor="#222222" android:textSize="16sp" /> <EditText android:id="@+id/edagr" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@null" android:hint="请输入验证码" android:inputType="phone" android:lines="0" android:maxLength="6" android:paddingBottom="10dp" android:paddingLeft="20dp" android:paddingTop="10dp" android:textColor="@android:color/black" android:textColorHint="#cccccc" android:textSize="16sp" /> <Button android:id="@+id/main_hq" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="20dp" android:background="@android:color/darker_gray" android:text="获取验证码" android:textColor="#0000ff" android:textSize="15sp" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="@android:color/darker_gray" /> <Button android:id="@+id/main_dl" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/darker_gray" android:gravity="center" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="30dp" android:text="注册" android:textColor="#0000ff" android:textSize="15sp" /> </LinearLayout>
下面我们把Activity核心代码贴上
import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.liu.administratorexample.massege_demo.Main2Activity; import com.liu.administratorexample.massege_demo.R; import com.mob.MobSDK; import org.json.JSONObject; import cn.smssdk.EventHandler; import cn.smssdk.SMSSDK; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private static final String TAG = "SmsYanzheng"; EditText mEditTextPhoneNumber; EditText mEditTextCode; Button mButtonGetCode; Button mButtonLogin; EventHandler eventHandler; String strPhoneNumber; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mEditTextPhoneNumber = (EditText) findViewById(R.id.edname); mEditTextCode = (EditText) findViewById(R.id.edagr); mButtonGetCode = (Button) findViewById(R.id.main_hq); mButtonLogin = (Button) findViewById(R.id.main_dl); mButtonGetCode.setOnClickListener(this); mButtonLogin.setOnClickListener(this); //后台获取的key MobSDK.init(this, "1fa70bb77d4eb", "a39554ddac764fadd54ef5e45c50b3d7"); eventHandler = new EventHandler() { /** * 在操作之后被触发 * * @param event 参数1 * @param result 参数2 SMSSDK.RESULT_COMPLETE表示操作成功,为SMSSDK.RESULT_ERROR表示操作失败 * @param data 事件操作的结果 */ @Override public void afterEvent(int event, int result, Object data) { Message message = myHandler.obtainMessage(0x00); message.arg1 = event; message.arg2 = result; message.obj = data; myHandler.sendMessage(message); } }; SMSSDK.registerEventHandler(eventHandler); } @Override protected void onDestroy() { super.onDestroy(); SMSSDK.unregisterEventHandler(eventHandler); } @Override public void onClick(View view) { if (view.getId() == R.id.main_dl) { String strCode = mEditTextCode.getText().toString(); if (null != strCode && strCode.length() == 4) { Log.d(TAG, mEditTextCode.getText().toString()); SMSSDK.submitVerificationCode("86", strPhoneNumber, mEditTextCode.getText().toString()); } else { Toast.makeText(this, "密码长度不正确", Toast.LENGTH_SHORT).show(); } } else if (view.getId() == R.id.main_hq) { strPhoneNumber = mEditTextPhoneNumber.getText().toString(); if (null == strPhoneNumber || "".equals(strPhoneNumber) || strPhoneNumber.length() != 11) { Toast.makeText(this, "电话号码输入有误", Toast.LENGTH_SHORT).show(); return; } SMSSDK.getVerificationCode("86", strPhoneNumber); mButtonGetCode.setClickable(false); //开启线程去更新button的text new Thread() { @Override public void run() { int totalTime = 60; for (int i = 0; i < totalTime; i++) { Message message = myHandler.obtainMessage(0x01); message.arg1 = totalTime - i; myHandler.sendMessage(message); try { sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } myHandler.sendEmptyMessage(0x02); } }.start(); } } Handler myHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0x00: int event = msg.arg1; int result = msg.arg2; Object data = msg.obj; Log.e(TAG, "result : " + result + ", event: " + event + ", data : " + data); if (result == SMSSDK.RESULT_COMPLETE) { //回调 当返回的结果是complete if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { //获取验证码 Toast.makeText(MainActivity.this, "发送验证码成功", Toast.LENGTH_SHORT).show(); Log.d(TAG, "get verification code successful."); } else if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { //提交验证码 Log.d(TAG, "submit code successful"); Toast.makeText(MainActivity.this, "提交验证码成功", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(MainActivity.this, Main2Activity.class); String trim = mEditTextCode.getText().toString().trim(); String s = mEditTextPhoneNumber.getText().toString().trim(); intent.putExtra("name",s); intent.putExtra("pwd",trim); startActivity(intent); } else { Log.d(TAG, data.toString()); } } else { //进行操作出错,通过下面的信息区分析错误原因 try { Throwable throwable = (Throwable) data; throwable.printStackTrace(); JSONObject object = new JSONObject(throwable.getMessage()); String des = object.optString("detail");//错误描述 int status = object.optInt("status");//错误代码 //错误代码: http://wiki.mob.com/android-api-%E9%94%99%E8%AF%AF%E7%A0%81%E5%8F%82%E8%80%83/ Log.e(TAG, "status: " + status + ", detail: " + des); if (status > 0 && !TextUtils.isEmpty(des)) { Toast.makeText(MainActivity.this, des, Toast.LENGTH_SHORT).show(); return; } } catch (Exception e) { e.printStackTrace(); } } break; case 0x01: mButtonGetCode.setText("重新发送(" + msg.arg1 + ")"); break; case 0x02: mButtonGetCode.setText("获取验证码"); mButtonGetCode.setClickable(true); break; } } }; }