Android開發之屬於你的簡訊驗證碼(一)

來源:互聯網
上載者:User

標籤: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開發之屬於你的簡訊驗證碼(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.