亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android中用Bmob實現(xiàn)短信驗證碼功能的方法詳解

 更新時間:2016年09月04日 14:28:58   作者:talentclass_ctt  
本文給大家分享通過第三方平臺Bmob實現(xiàn)發(fā)送驗證碼和校驗驗證碼的功能,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧

 這篇文章主要介紹發(fā)送驗證碼和校驗驗證碼的功能,用到一個第三方平臺Bmob,那Bmob是什么呢?Bmob可以開發(fā)一個云存儲的移動應(yīng)用軟件,他提供了大量的標準的API接口,根據(jù)需要接入相關(guān)服務(wù),開發(fā)者可以更加專注于應(yīng)用的開發(fā),讓產(chǎn)品交付更快速,驗證碼功能就是其中一個。

一、跟其他第三方一樣,我們開發(fā)之前要做一些準備工作。

1、首先,去官網(wǎng)注冊一個帳號:http://www.bmob.cn/;

2、然后就可以創(chuàng)建應(yīng)用了;具體怎么做Bmob說得很清楚了(官方操作介紹),如果你不想看,我簡單說一下:點擊右上角“我的控制臺”,進入后點擊“創(chuàng)建應(yīng)用”,如圖

然后填應(yīng)用名,下面的根據(jù)需要選,如果實在不知選什么,就選最下面的其他,這樣就好了,如圖:

3、獲取Application ID和REST API Key;點擊左下角的設(shè)置,右邊就有應(yīng)用密鑰了。

系統(tǒng)會幫你生成四個值,解釋如下,其中Application ID是等下初始化的時候要用到的。

Application ID,SDK初始化必須用到此密鑰

REST API Key,REST API請求中HTTP頭部信息必須附帶密鑰之一

Secret Key,是SDK安全密鑰,不可泄漏,在云端邏輯測試云端代碼時需要用到

Master Key,超級權(quán)限Key。應(yīng)用開發(fā)或調(diào)試的時候可以使用該密鑰進行各種權(quán)限的操作,此密鑰不可泄漏

4、創(chuàng)建短信驗證碼模版,只有審核通過之后的自定義短信模板才可以被使用,如果自定義的短信模板其狀態(tài)顯示審核中或者審核失敗,再調(diào)用該方法則會以默認模板來發(fā)送驗證碼,開發(fā)者提交短信驗證碼模板時需注意以下幾點:

1)、模板中不能有【】和 [] ,否則審核不通過;

2)、如果你提交的短信模板無法發(fā)送,則有可能包含一些敏感監(jiān)控詞,具體通過查閱《短信關(guān)鍵字監(jiān)控參考文檔》(我會連同源碼一起發(fā))來查看提交內(nèi)容是否合法。

3)、一天一個應(yīng)用給同一手機號發(fā)送的短信不能超過10條,否則會報10010錯誤,其他錯誤碼可查看:短信功能相關(guān)錯誤碼 。

支持自定義簽名。注:官方簽名屬于獨立通道,自定義簽名屬于共享通道,短信接收速度和穩(wěn)定性會有所差異。

短信簽名是指短信內(nèi)容里【】 括起來的名稱,簽名字數(shù)為3~8個字,且不能有任何非文字字符。

模板內(nèi)容支持3個變量:%appname%(您填寫的應(yīng)用名稱),%smscode% (統(tǒng)生成的6位驗證碼),%ttl%(驗證碼有效時間,單位為分鐘)。

若無需使用到變量則不用再加“%”,直接填寫實際名稱即可。

我今天創(chuàng)建了3個審核不通過的,我就納悶了,后來我才看到上面這幾點才發(fā)現(xiàn)錯誤,像下圖就是審核不通過的:

5、下載短信驗證碼的SDK,下載后發(fā)現(xiàn)里面只有一個jar包。

注意:每個 Bmob 帳戶有 10 條免費額度的短信數(shù)量用于測試,超過需要購買短信條數(shù)才能繼續(xù)使用。

二、接下來就開始寫客戶端的代碼了,之前寫了一片關(guān)于跨界面倒計時的文章,(鏈接:跨界面倒計時,再也不怕倒計時過程中Activity被銷毀了)今天就用那個程序來接著完成這次的驗證碼,哈哈哈,我是不是很懶呢。。。。不過其實布局也很簡單,關(guān)鍵是下面。

1、導(dǎo)入jar包,我前面寫過一篇文章是關(guān)于Android Studio導(dǎo)入jar包的文章(鏈接:Android Studio下導(dǎo)入jar包(以andbase.jar為例)),這里就簡單帶過。將jar文件放到libs目錄下,接下來右鍵項目,選擇open module settings,然后選擇APP后點擊右邊的dependencies,再點擊右上角的加號,選擇第二個File dependenc以后會彈出窗口,選擇剛才的jar包,最后點OK,OK。

2、SMS初始化。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
mContext = this; 
Log.e(TAG, "onStart 方法調(diào)用"); 
// SMS初始化 
BmobSMS.initialize(mContext, "還記得嗎?這里填剛才拿到的Application ID"); 
init(); 
} 

3、點擊按鈕請求發(fā)送短信驗證碼。先看下布局吧:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 
<EditText 
android:id="@+id/activity_main_et_phone" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:inputType="phone" 
android:hint="請?zhí)顚懯謾C號碼"/> 
<Button 
android:id="@+id/activity_main_btn_countdown" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_below="@id/activity_main_et_phone" 
android:layout_margin="8dp" 
android:layout_centerHorizontal="true" 
android:background="@drawable/shape" 
android:textColor="@color/white" 
android:text="@string/countdown"/> 
<EditText 
android:id="@+id/activity_main_et" 
android:layout_below="@id/activity_main_btn_countdown" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:hint="請輸入驗證碼"/> 
<Button 
android:id="@+id/activity_main_btn_send" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_margin="8dp" 
android:layout_centerHorizontal="true" 
android:layout_below="@id/activity_main_et" 
android:background="@drawable/shape" 
android:textColor="@color/white" 
android:text="@string/send"/> 
</RelativeLayout> 

給“獲取驗證碼”按鈕設(shè)置點擊事件:倒計時和請求發(fā)送短信驗證碼

btnCountdown.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
// 將按鈕設(shè)置為不可用狀態(tài) 
btnCountdown.setEnabled(false); 
// 啟動倒計時的服務(wù) 
startService(mIntent); 
// 通過requestSMSCode方式給綁定手機號的該用戶發(fā)送指定短信模板的短信驗證碼 
BmobSMS.requestSMSCode(mContext, etPhone.getText().toString(), "天才", new RequestSMSCodeListener() { 
@Override 
public void done(Integer smsId, BmobException ex) { 
if (ex == null) {//驗證碼發(fā)送成功 
Log.e("bmob", "短信id:" + smsId);//用于查詢本次短信發(fā)送詳情 
} 
} 
}); 
} 
}); 

驗證驗證碼

<pre name="code" class="java">btnSend.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
String number = etNumber.getText().toString(); 
if (!TextUtils.isEmpty(number)){ 
<span style="white-space:pre"> </span>// 通過verifySmsCode方式可驗證該短信驗證碼 
BmobSMS.verifySmsCode(mContext,etPhone.getText().toString(), number, new VerifySMSCodeListener() { 
@Override 
public void done(BmobException ex) { 
if(ex==null){//短信驗證碼已驗證成功 
Log.e("bmob", "驗證通過"); 
}else{ 
Log.e("bmob", "驗證失敗:code ="+ex.getErrorCode()+",msg = "+ex.getLocalizedMessage()); 
} 
} 
}); 
} 
} 
}); 

別忘了在AndroidManifest.xml里面添加權(quán)限:

<!--允許聯(lián)網(wǎng) --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<!--獲取GSM(2g)、WCDMA(聯(lián)通3g)等網(wǎng)絡(luò)狀態(tài)的信息 --> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!--獲取wifi網(wǎng)絡(luò)狀態(tài)的信息 --> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 

我的例子就寫到這里了,不過還有一個知識點:查詢短信發(fā)送狀態(tài)。我把官網(wǎng)的貼一下(根據(jù)自己的業(yè)務(wù)決定要不要這個功能,o(︶︿︶)o 唉,其實就是我懶,哈哈哈):

// 通過querySmsState方式可查詢指定smsId的發(fā)送狀態(tài) 
BmobSMS.querySmsState(context, smsId, new QuerySMSStateListener() { 
@Override 
public void done(SmsState state, BmobException ex) { 
if(ex==null){ 
Log.i("smile","短信狀態(tài):"+state.getSmsState()+",驗證狀態(tài):"+state.getVerifyState()); 
} 
} 
}); 

注:SmsState包含兩種狀態(tài):

1、smsState(短信狀態(tài)) :SUCCESS(發(fā)送成功)、FAIL(發(fā)送失?。?、SENDING(發(fā)送中)。

2、verifyState(驗證狀態(tài)):true(已驗證)、false(未驗證)。

以上所述是小編給大家介紹的Android中用Bmob實現(xiàn)短信驗證碼功能的方法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論