標籤:android 簡訊驗證碼 彙總資料 sdk 實戰
不飛則已,一飛衝天;不鳴則已,一鳴驚人---------司馬遷
最近工作又有新需求,要求使用者在註冊的時候需要通過手機驗證碼,這樣做的目的是防止使用者通過一個郵箱來隨便的註冊,那麼好,今天我們就 一起來學習一下Android中的簡訊驗證碼這一個知識點。如有謬誤,歡迎批評指正,如有疑問歡迎留言,謝謝
在說這個知識點前,我們首先來瞭解下彙總資料
一、彙總資料介紹
彙總資料是一家國內最大的基礎資料API供應商,專業從事互連網資料服務。免費提供從天氣查詢、空氣品質、地圖座標到金融基金、電商比價、違章查詢等各個領域的安全、穩定和高效的資料。開發人員可以免費試用彙總資料API進行移動APP的快速開發,免除資料收集、維護等環節,大大降低開發週期及成本。因此我們可以採用彙總資料給我提供好的一套東西來進行簡訊驗證碼的功能的添加。
首先我們要做準備工作,使用彙總資料主要分為以下步驟:
第一步,進入彙總資料官網註冊一個帳號
完成註冊後進入,"個人中心"——>點擊申請資料如所示
在輸入你的手機號,然後你會收到驗證碼,在驗證碼處輸入你收到的驗證碼點擊申請
第二步,申請後你會看到一個Appkey,如果已經申請了可以按如下步驟查看你申請的Appkey
1.進入個人中心,點擊我的資料,如所示
2.我們點擊查看按鈕就會看到我們申請的Appkey如所以,此Appkey非常重要
以上兩步已經完成了Appkey的申請接著我們進行第三步,下載簡訊驗證碼的SDK
第三步下載簡訊驗證碼SDK
1.進入首頁點擊資料介面如所示
2.在左側分類中找到SDK中心如所示
3.點擊簡訊驗證碼SDK會進入到如所示的介面
到這裡我們已經把SDK給下載好了,下面我們就該進入第四步,建立工程配置環境了
第四步,建立工程,配置環境
1.建立一個工程把我們下載的SDK裡libs下的“armeabi檔案”和"smscaptcha_v_1_4.jar"複製到我們工程的libs目錄下
2.在AndroidManifest中添加開發密鑰、要求的權限等資訊
(1)在application中添加開發密鑰
<meta-data android:name="JUHE_KEY" android:value="開發人員 key" />
(2)添加要求的權限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION " /> <uses-permission android:name="android.permission.READ_FINE_LOCATION" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.READ_CONTACTS" />
(3)在應用程式建立時初始化 SDK引用的Context全域變數
在這一步我們有兩種方法
第一種在Activity中配置
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //在使用SDK各組件之前初始化context資訊,傳入ApplicationContext //注意該方法要再setContentView方法之前實現 /** * 初始化方法* @param context* @needFriends 是否需要好友功能*/ CommonFun.initialize(getApplicationContext(),true); setContentView(R.layout.activity_main); } }
下面這個注意是彙總資料文檔給我們的建議,它建議我們把這個初始化工作放在Application中,因為程式運行首先會運行Application中的方法
注意:在SDK各功能組件使用之前都需要調用CommonFun.initialize(getApplicationContext(),true);,因此我們建議該方法放在Application的初始化方法中
所以我們就按它建議的方法,而不採用第一種方法這樣我們需要建立一個Applicaiton類MyApplication如下
package com.example.android.sms;import com.thinkland.sdk.util.CommonFun;import android.app.Application;public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();CommonFun.initialize(getApplicationContext(), false); }}
聲明好Application後不要忘了在資訊清單檔中配置
好了環境已經配置好了,我們來驗證一下看看我們是否能收到簡訊
MainActivity的代碼如下
package com.example.android.sms;import com.thinkland.sdk.sms.SMSCaptcha;import com.thinkland.sdk.util.BaseData;import com.thinkland.sdk.util.CommonFun;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.widget.Toast;public class MainActivity extends Activity {protected static final String TAG ="MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化 SMSCaptcha對象在這個對象中有給我們傳送簡訊驗證碼的方法SMSCaptcha smsCaptcha=SMSCaptcha.getInstance();//調用傳送簡訊驗證碼的方法,在其中有一個回調/** phone手機號碼 callBack返回結果回調方法. */smsCaptcha.sendCaptcha("此處輸入你的手機號",new BaseData.ResultCallBack() {@Overridepublic void onResult(int code, String reason, String result) { /* code:返回碼:伺服器: 0 成功; 1 錯誤;本地: -2 本網異常; -3 伺服器網路異常;-4 解析錯誤;-5初始化異常reason:返回資訊 成功或錯誤原因.result:返回結果,JSON格式.錯誤或者無傳回值時為空白.*/if(code==0){Log.i(TAG,"code="+code);Log.i(TAG,"reason="+reason);Log.i(TAG,"result="+result);}}});}}
返回結果如下:
並且手機接收到了簡訊,好了,這一篇就到這裡了,這一篇主要是環境的搭建,下一篇就和大家一起討論介面UI的實現,並驗證輸入的驗證碼是否是正確的驗證碼。
Android開發之屬於你的簡訊驗證碼(一)