注冊會員時APP如何自動獲取短信驗證碼
2018-05-15 00:00:00
來源:
點擊:5213
喜歡:0
在APP會員注冊
時,手機短信驗證碼自動獲取,能給客戶帶來很大的方便,增加客戶體驗。目前好多APP都有手機驗證碼自動填寫功能,但還是有一部分技術(shù)不知道怎么實現(xiàn),這里就簡單介紹一下
實現(xiàn)思路很簡單:1、在需要輸入驗證碼的Activity代碼注冊監(jiān)聽短信的廣播 2、攔截短信,獲取其中的驗證碼 3、回寫到EditText
- private SmsReciver smsReciver = new SmsReciver();
-
- String ACTION_SMS_RECIVER = "android.provider.Telephony.SMS_RECEIVED";
-
-
-
- private void registSmsReciver() {
- IntentFilter filter = new IntentFilter();
- filter.addAction(ACTION_SMS_RECIVER);
-
- filter.setPriority(1000);
- registerReceiver(smsReciver, filter);
- }
-
-
-
-
- private class SmsReciver extends BroadcastReceiver {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- Object[] objs = (Object[]) intent.getExtras().get("pdus");
- for (Object obj : objs) {
- yte[] pdu = (byte[]) obj;
- SmsMessage sms = SmsMessage.createFromPdu(pdu);
-
- String message = sms.getMessageBody();
- Log.d("log", "message " + message);
-
- String from = sms.getOriginatingAddress();
- Log.d("log", "from " + from);
- analysisVerify(message);
-
- }
- }
-
- }
-
-
-
-
-
-
- private void analysisVerify(String message) {
- char[] msgs = message.toCharArray();
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < msgs.length; i++) {
- if ('0' <= msgs[i] && msgs[i] <= '9') {
- sb.append(msgs[i]);
- }
- }
-
- mEtVerifyCode.setText(sb.toString());
- }
-
- @Override
- protected void onDestroy() {
- super.onDestroy();
-
- if (smsReciver != null) {
- unregisterReceiver(smsReciver);
- smsReciver = null;
- }
- }
可以看到代碼邏輯比較簡單,需要注意的有幾點。我們這里用的代碼注冊廣播,之所以不采取全局廣播的形式原因有兩天,在高版本的api,注冊全局的短信監(jiān)聽會失效。而且就業(yè)務而言,我們監(jiān)聽短信只會在輸入驗證碼的Activity里面才會用到,采用代碼注冊的形式,在當前Activity銷毀的時候取消廣播注冊,更符合我們的預期,提高應用的性能。第二個需要注意的問題是優(yōu)先級的問題- filter.setPriority(1000);
可以看到,我們這里把優(yōu)先級設置成了最大。保證我們的應用能夠盡可能的接受到短信。注意,我使用的是“盡可能”,也就是說我們不能保證短信自動填寫一定能執(zhí)行成功,有個小伙伴可能會問,我們不是把優(yōu)先級設置成了最高了嗎?為什么還不能保證了? 原因其實很簡單,你能把監(jiān)聽短信的優(yōu)先級設置成最大,同樣的,其他的應用也能把短信監(jiān)聽的優(yōu)先級設置成最大。比如說,你的手機安裝有360安全衛(wèi)士,把你們公司的驗證碼視為垃圾短信攔截了,這個時候短信攔截就失效了。
嘉之元云通信為客戶提短信驗證碼、短信營銷、國際短信、智能外呼機器人等服務!其在互聯(lián)網(wǎng)行業(yè)深耕近10年,在短信接口平臺、營銷短信、國際短信、智能語音機器人方面與業(yè)內(nèi)資深企業(yè)強強聯(lián)合,產(chǎn)品服務水平一直處于行業(yè)領先水平,深受廣大客戶的認可,嘉之元云通信將一如既往的為您提供一流的服務。
上一篇:小云智能電話機器人--如何提升人工智能的用戶體驗
下一篇:嘉之元云通訊行業(yè)短信業(yè)務介紹