官方文档:
http://wiki.mob.com/moblink-android-doc/
一、申请APPkey
获取appid appsecret 就ok了是不是很简单呢!
二、集成引用
再project下和app下的build.gradle分别引入
app
还要加入
apply plugin: "com.mob.sdk"
project下
三、编写代码
layout
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <LinearLayout android:id="@+id/linearLayout2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="148dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <EditText android:id="@+id/et_phone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:hint="输入手机号" android:inputType="textPersonName" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="getYZM" android:text="点击获取验证吗" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:orientation="horizontal" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/linearLayout2"> <EditText android:id="@+id/et_crect" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" android:hint="请输入验证码" android:inputType="textPersonName" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:onClick="login" android:text="登录" /> </LinearLayout> </android.support.constraint.ConstraintLayout>
Java
package com.example.ligang.sendmsg; import android.content.Context; 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.EditText; import android.widget.Toast; import com.mob.MobSDK; import org.json.JSONObject; import cn.smssdk.EventHandler; import cn.smssdk.SMSSDK; import cn.smssdk.utils.SMSLog; public class MainActivity extends AppCompatActivity { private EditText etPhone; private EditText etYZM; private String phone; private Handler mHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MobSDK.init(this); init(); EventHandler eh = new EventHandler() { @Override public void afterEvent(int event, int result, Object data) { Message msg = new Message(); msg.arg1 = event; msg.arg2 = result; msg.obj = data; mHandler.sendMessage(msg); } }; SMSSDK.registerEventHandler(eh); // TODO Auto-generated method stub //短信注册成功后,返回MainActivity,然后提示新好友 //提交验证码成功 //已经验证 //已经验证 // textV.setText(data.toString()); // ((Throwable) data).printStackTrace(); // Toast.makeText(MainActivity.this, "验证码错误", Toast.LENGTH_SHORT).show(); // Toast.makeText(MainActivity.this, "123", Toast.LENGTH_SHORT).show(); mHandler = new Handler() { public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); int event = msg.arg1; int result = msg.arg2; Object data = msg.obj; Log.e("event", "event=" + event); if (result == SMSSDK.RESULT_COMPLETE) { System.out.println("--------result" + event); //短信注册成功后,返回MainActivity,然后提示新好友 if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) { //提交验证码成功 Toast.makeText(getApplicationContext(), "提交验证码成功", Toast.LENGTH_SHORT).show(); startActivity(new Intent(MainActivity.this, HomeActivity.class)); } else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) { //已经验证 Toast.makeText(getApplicationContext(), "验证码已经发送", Toast.LENGTH_SHORT).show(); } else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) { //已经验证 Toast.makeText(getApplicationContext(), "获取国家列表成功", Toast.LENGTH_SHORT).show(); // textV.setText(data.toString()); } } else { // ((Throwable) data).printStackTrace(); // Toast.makeText(MainActivity.this, "验证码错误", Toast.LENGTH_SHORT).show(); //Toast.makeText(MainActivity.this, "123", Toast.LENGTH_SHORT).show(); int status = 0; try { ((Throwable) data).printStackTrace(); Throwable throwable = (Throwable) data; JSONObject object = new JSONObject(throwable.getMessage()); String des = object.optString("detail"); status = object.optInt("status"); if (!TextUtils.isEmpty(des)) { Toast.makeText(MainActivity.this, des+"验证码错误", Toast.LENGTH_SHORT).show(); return; } } catch (Exception e) { SMSLog.getInstance().w(e); } } } }; } private void init() { etPhone = (EditText) findViewById(R.id.et_phone); etYZM = (EditText) findViewById(R.id.et_crect); } public void login(View view) { SMSSDK.submitVerificationCode("86", phone, etYZM.getText().toString()); } public void sendCode(Context context) { /* RegisterPage page = new RegisterPage(); //如果使用我们的ui,没有申请模板编号的情况下需传null page.setTempCode(null); page.setRegisterCallback(new EventHandler() { public void afterEvent(int event, int result, Object data) { if (result == SMSSDK.RESULT_COMPLETE) { // 处理成功的结果 HashMap<String,Object> phoneMap = (HashMap<String, Object>) data; String country = (String) phoneMap.get("86"); // 国家代码,如“86” String phone = (String) phoneMap.get("phone"); // 手机号码,如“13800138000” // TODO 利用国家代码和手机号码进行后续的操作 } else{ // TODO 处理错误的结果 } } }); page.show(context);*/ } public void getYZM(View view) { // Toast.makeText(getApplicationContext(), "123", Toast.LENGTH_SHORT).show(); //SMSSDK.getVerificationCode("1", "4432487596"); SMSSDK.getVerificationCode("86", etPhone.getText().toString()); phone = etPhone.getText().toString(); /* sendCode(MainActivity.this);*/ } }
四、引入相关的配置
限权
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.GET_TASKS" />
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.mob.tools.MobUIShell" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:windowSoftInputMode="stateHidden|adjustResize" /> <activity android:name=".HomeActivity"> </activity> </application>
五、结果
参考博客:
https://blog.csdn.net/qq_38933706/article/details/78898511?from=singlemessage&isappinstalled=0