首先寫乙個簡訊驗證類registerpage
/** 簡訊註冊頁面*/
public class registerpage extends fakeactivity implements onclicklistener,
textwatcher
public void setonsendmessagehandler(onsendmessagehandler h)
public void show(context context)
public void oncreate()
view viewcountry = activity.findviewbyid(res.id.rl_country);
btnnext = (button) activity.findviewbyid(res.id.btn_next);
tvcountry = (textview) activity.findviewbyid(res.id.tv_country);
string country = getcurrentcountry();
// string country = smssdk.getcountry(currentid);
if (country != null)
tvcountrynum = (textview) activity.findviewbyid(res.id.tv_country_num);
tvcountrynum.settext("+" + currentcode);
etphonenum = (edittext) activity.findviewbyid(res.id.et_write_phone);
etphonenum.settext("");
etphonenum.addtextchangedlistener(this);
etphonenum.requestfocus();
if (etphonenum.gettext().length() > 0)
}ivclear = (imageview) activity.findviewbyid(res.id.iv_clear);
llback.setonclicklistener(this);
btnnext.setonclicklistener(this);
ivclear.setonclicklistener(this);
viewcountry.setonclicklistener(this);
handler = new eventhandler()
if (result == smssdk.result_complete)
} else
int status = 0;
// 根據伺服器返回的網路錯誤,給toast提示
try
} catch (exception e)
// 如果木有找到資源,預設提示
int resid = 0;
if(status >= 400) else
if (resid > 0) }}
});}};}
}private string getcurrentcountry()
if (country == null)
return country;
}private string getmcc()
// 返回sim卡運營商所在國家的mcc+mnc. 5位或6位. 如果沒有sim卡返回空
return tm.getsimoperator();
}public void onresume()
public void onpause()
public void beforetextchanged(charsequence s, int start, int count,
int after)
public void ontextchanged(charsequence s, int start, int before, int count)
} else }}
public void aftertextchanged(editable s)
public void onclick(view v) else if (id == id_rl_country) else if (id == id_btn_next) else if (id == id_iv_clear)
}@suppresswarnings("unchecked")
public void onresult(hashmapdata)
} else if (page == 2)
if (callback != null)
finish();}}
}}/** 分割**號碼 */
private string splitphonenum(string phone)
builder.reverse();
return builder.tostring();
}/** 是否請求傳送驗證碼,對話方塊 */
public void showdialog(final string phone, final string code)
((button) dialog.findviewbyid(res.id.btn_dialog_ok)).setonclicklistener(
new onclicklistener()
pd = commondialog.progressdialog(activity);
if (pd != null)
log.e("verification phone ==>>", phone);
smssdk.getverificationcode(code, phone.trim(), osmhandler);
}});
((button) dialog.findviewbyid(res.id.btn_dialog_cancel)).setonclicklistener(
new onclicklistener()
});dialog.setcanceledontouchoutside(true);
dialog.show();}}
}/** 請求驗證碼後,跳轉到驗證碼填寫頁面 */
private void afterverificationcoderequested(boolean smart)
string formatedphone = "+" + code + " " + splitphonenum(phone);
// 驗證碼頁面
if(smart) else }}
然後**實現
// 開啟註冊頁面
registerpage registerpage = new registerpage();
registerpage.setregistercallback(new eventhandler()
}
Spring Security實現簡訊驗證碼登入
spring security預設的乙個實現是使用使用者名稱密碼登入,當初我們在開始做專案時,也是先使用這種登入方式,並沒有多考慮其他的登入方式。而後面需求越來越多,我們需要支援簡訊驗證碼登入了,這時候再看了解spring security中如何實現簡訊驗證碼登入。這裡有一篇文章 springboo...
php實現簡訊驗證功能
介面型別 互億無線觸發簡訊介面,支援傳送驗證碼簡訊 訂單通知簡訊等。注意事項 1 除錯期間,請使用用系統預設的簡訊內容 您的驗證碼是 變數 請不要把驗證碼洩露給其他人。2 請使用 apiid 及 apikey來呼叫介面,可在會員中心獲取 3 該 僅供接入互億無線簡訊介面參考使用,客戶可根據實際需要自...
簡單的簡訊驗證功能的實現
將下面的指令碼新增到您的根模組build.gradle中 buildscript dependencies 新增外掛程式 在mobsdk的擴充套件中註冊smssdk的相關資訊 mobsdk 配置完以上gradle配置後,基本算是整合完smssdk了,文件中提供了呼叫的 直接複製貼上進我的demo測試...