sharesdk短信验证码的集成
生活随笔
收集整理的這篇文章主要介紹了
sharesdk短信验证码的集成
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在ShareSDK官網http://mob.com/注冊并創建Android應用.申請APP_key,下載SDK等
根據官網開發文檔導入SDK,目錄結構如下
將以上文件按需放入Android Studio項目所要使用SMSSDK的Module所在的Libs里面,再在Module的build.gradle里面將libs加入倉庫(repositories),
然后添加依賴(dependencies )示例如下:
?添加權限:
<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" />?然后在“application”下添加如下activity:
<activityandroid:name="com.mob.tools.MobUIShell"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="stateHidden|adjustResize"/>?代碼實現:
初始化工作:
SMSSDK.initSDK(this, "您的appkey", "您的appsecret");?如果使用默認的短信注冊頁面可以用以下代碼實現:
//打開默認注冊頁面 RegisterPage registerPage = new RegisterPage(); registerPage.setRegisterCallback(new EventHandler() {public void afterEvent(int event, int result, Object data) {// 解析注冊結果if (result == SMSSDK.RESULT_COMPLETE) {@SuppressWarnings("unchecked")HashMap<String,Object> phoneMap = (HashMap<String, Object>) data;String country = (String) phoneMap.get("country");String phone = (String) phoneMap.get("phone"); // 提交用戶信息(此方法可以不調用)registerUser(country, phone);}} }); registerPage.show(context);?自定義UI實現手機注冊短信驗證:
package com.loaderman.smssdkdemo;import android.app.ProgressDialog; import android.os.Bundle; import android.support.v7.app.AlertDialog; 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 java.util.HashMap;import cn.smssdk.EventHandler; import cn.smssdk.SMSSDK;public class MainActivity extends AppCompatActivity {private EditText et_number;private String number;private EditText et_security;private ProgressDialog dialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//SMSSDK.initSDK(this, "您的appkey", "您的appsecret");//初始化工作,建議放在自己的Application的onCreate方法中SMSSDK.initSDK(this, "1beb22f8862dc", "df387854c513ca138cd23d53cf33cec3");et_number = (EditText) findViewById(R.id.et_phone);et_security = (EditText) findViewById(R.id.et_security);//注冊短信回調監聽SMSSDK.registerEventHandler(ev); }/*** 短信驗證的回調監聽*/private EventHandler ev = new EventHandler() {@Overridepublic void afterEvent(int event, int result, Object data) {if (result == SMSSDK.RESULT_COMPLETE) { //回調完成//提交驗證碼成功,如果驗證成功會在data里返回數據。data數據類型為HashMap<number,code>if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {Log.e("TAG", "提交驗證碼成功" + data.toString());HashMap<String, Object> mData = (HashMap<String, Object>) data;String country = (String) mData.get("country");//返回的國家編號String phone = (String) mData.get("phone");//返回用戶注冊的手機號Log.e("TAG", country + "====" + phone);if (phone.equals(number)) {runOnUiThread(new Runnable() {//更改ui的操作要放在主線程,實際可以發送hander@Overridepublic void run() {showDailog("恭喜你!通過驗證");dialog.dismiss();// Toast.makeText(MainActivity.this, "通過驗證", Toast.LENGTH_SHORT).show();}});} else {runOnUiThread(new Runnable() {@Overridepublic void run() {showDailog("驗證失敗");dialog.dismiss();// Toast.makeText(MainActivity.this, "驗證失敗", Toast.LENGTH_SHORT).show();}});}} else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {//獲取驗證碼成功Log.e("TAG", "獲取驗證碼成功");} else if (event == SMSSDK.EVENT_GET_SUPPORTED_COUNTRIES) {//返回支持發送驗證碼的國家列表}} else {((Throwable) data).printStackTrace();}}};//驗證結果彈窗private void showDailog(String text) {new AlertDialog.Builder(this).setTitle(text).setPositiveButton("確定", null).show();}/*** 獲取驗證碼* @param v*/public void getSecurity(View v) {number = et_number.getText().toString().trim();//發送短信,傳入國家號和電話---使用SMSSDK核心類之前一定要在MyApplication中初始化,否側不能使用if (TextUtils.isEmpty(number)) {Toast.makeText(this, "號碼不能為空!", Toast.LENGTH_SHORT).show();} else {SMSSDK.getVerificationCode("+86", number);Toast.makeText(this, "發送成功:" + number, Toast.LENGTH_SHORT).show();}}/*** 向服務器提交驗證碼,在監聽回調中判斷是否通過驗證* @param v*/public void testSecurity(View v) {String security = et_security.getText().toString();if (!TextUtils.isEmpty(security)) {dialog = ProgressDialog.show(this, null, "正在驗證...", false, true);//提交短信驗證碼SMSSDK.submitVerificationCode("+86", number, security);//國家號,手機號碼,驗證碼Toast.makeText(this, "提交了注冊信息:" + number, Toast.LENGTH_SHORT).show();} else {Toast.makeText(this, "驗證碼不能為空", Toast.LENGTH_SHORT).show();}}@Overrideprotected void onDestroy() {super.onDestroy();//要在activity銷毀時反注冊,否側會造成內存泄漏問題SMSSDK.unregisterAllEventHandler();} }?activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns: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"android:padding="10dp"tools:context="com.loaderman.smssdkdemo.MainActivity"><EditTextandroid:id="@+id/et_phone"android:background="#ccc"android:hint="請輸入手機號碼"android:inputType="phone"android:padding="5dp"android:layout_width="match_parent"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/et_security"android:layout_marginTop="10dp"android:background="#ccc"android:hint="請輸入短信驗證碼"android:inputType="phone"android:padding="5dp"android:layout_width="match_parent"android:layout_height="wrap_content"/><Buttonandroid:onClick="getSecurity"android:id="@+id/btn_get"android:layout_width="match_parent"android:text="獲取驗證碼"android:layout_height="wrap_content"/><Buttonandroid:onClick="testSecurity"android:id="@+id/btn_register"android:layout_width="match_parent"android:text="注冊"android:layout_height="wrap_content"/> </LinearLayout>?效果圖:
轉載于:https://www.cnblogs.com/loaderman/p/6520382.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的sharesdk短信验证码的集成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机上剪辑一般用什么软件?
- 下一篇: 叉叉助手可以干嘛?