<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    Android自動獲取短信驗證碼

     前言:android應(yīng)用的自動化測試必然會涉及到注冊登錄功能,而許多的注冊登錄或修改密碼功能常常需要輸入短信驗證碼,因此有必要能夠自動獲得下發(fā)的短信驗證碼。

      主要就是實時獲取短信信息。

      android上獲取短信信息主要有BroadcastReceiver方式與數(shù)據(jù)庫方式,要實時的話就BroadcastReceiver比較方便

    public class SMSReceiver extends BroadcastReceiver{
       private String verifyCode="";
        public static final String TAG = "SMSReceiver";
        public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
        @Override
        public void onReceive(Context context, Intent intent){
           if (intent.getAction().equals(SMS_RECEIVED_ACTION)){
               SmsMessage[] messages = getMessagesFromIntent(intent);
               for (SmsMessage message : messages){
                  Log.i(TAG, message.getOriginatingAddress() + " : " +
                      message.getDisplayOriginatingAddress() + " : " +
                      message.getDisplayMessageBody() + " : " +
                      message.getTimestampMillis());
                  String smsContent=message.getDisplayMessageBody();
                  Log.i(TAG, smsContent);             
                  writeFile(smsContent);//將短信內(nèi)容寫入SD卡
               }
           }
        }

     public final SmsMessage[] getMessagesFromIntent(Intent intent){
            Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
            byte[][] pduObjs = new byte[messages.length][];
            for (int i = 0; i < messages.length; i++)
            {
                pduObjs[i] = (byte[]) messages[i];
            }
            byte[][] pdus = new byte[pduObjs.length][];
            int pduCount = pdus.length;
            SmsMessage[] msgs = new SmsMessage[pduCount];
            for (int i = 0; i < pduCount; i++)        {
                pdus[i] = pduObjs[i];
                msgs[i] = SmsMessage.createFromPdu(pdus[i]);
            }
            return msgs;
        }
      //將短信內(nèi)容寫到SD卡上的文件里,便于將文件pull到PC,這樣可方便其它如WWW/WAP平臺的自動化 
        @SuppressLint("SdCardPath")
     public void writeFile(String str){
         String filePath="/mnt/sdcard/verifyCode.txt";     
         byte [] bytes = str.getBytes();
         try{
         File file=new File(filePath);
         file.createNewFile();
         FileOutputStream fos=new FileOutputStream(file);
         fos.write(bytes);
         fos.close();
         }catch(IOException e){
          e.printStackTrace();
         }      
        }



      如此當(dāng)有短信收到時就可以將短信內(nèi)容寫到SD卡中的文件里

      在另一個java類中寫個讀取文件內(nèi)容的方法,并在寫測試用例過程中,將得到的String按驗證碼的具體位置截取即可。

    public String read(String str) throws IOException{ 
      File file=new File(str);
      FileInputStream fis=new FileInputStream(file);
      StringBuffer sb=new StringBuffer();
      
      BufferedInputStream bis=new BufferedInputStream(fis);
      BufferedReader  read = new BufferedReader (new InputStreamReader(bis));
      int c=0;
      while ((c=read.read())!=-1) {
                sb.append((char) c);
            }
      read.close();
      bis.close();
      fis.close();
      Log.i(TAG, sb.toString());  
      String verify=sb.toString();  
      return verify;
     }

      最后需要在manifest中增加申明,且注冊權(quán)限

    <receiver android:name="com.cplatform.surfdesktop.test.util.SMSReceiver">
    <intent-filter>
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
    </receiver>
    <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.READ_SMS"/>

      測試過程中需要用到短信驗證碼時就可以實時獲取了

    posted on 2013-08-27 10:53 順其自然EVO 閱讀(4160) 評論(13)  編輯  收藏 所屬分類: android

    評論

    # re: Android自動獲取短信驗證碼 2014-02-06 15:27 孟千熙

    沒有驗證碼就建不了QQ號,請您給我個短信驗證碼吧!  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-02-06 15:28 孟千熙

    kji9ujjkjih你  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-03-22 23:23 5

    878  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-07-20 15:23 陳小龍

    獲取驗證碼  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-07-20 15:24 陳小龍

    124  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-07-20 15:25 陳小龍

    沒有驗證碼就建不了QQ號,請您給我個短信驗證碼吧!  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-07-20 15:33 陳小龍

    沒有驗證用不了QQ號,請您給我個短信驗證碼吧!  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-07-20 15:34 陳小龍

    沒有驗證用不了QQ號,請您給我個短信驗證碼吧  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-07-20 15:35 陳小龍

    ADSFDSVREW你  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-08-05 00:05 韓文杰

    我的qq獨立密碼忘了 請給我個驗證碼吧!  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2014-08-05 00:05 韓文杰

    我的qq獨立密碼忘了 請給我個驗證碼吧  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2015-09-23 13:01 hugege

    沒有驗證碼,就建不了QQ  回復(fù)  更多評論   

    # re: Android自動獲取短信驗證碼 2015-09-23 13:02 hugege

    沒有驗證碼就建不了QQ號  回復(fù)  更多評論   

    <2013年8月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 又粗又大又黑又长的免费视频| 午夜免费福利视频| 免费无码又爽又刺激聊天APP| 亚洲日韩中文字幕| 国产香蕉九九久久精品免费| 亚洲不卡视频在线观看| 在线观看人成视频免费| www亚洲精品久久久乳| 亚洲国产成人乱码精品女人久久久不卡 | 国产午夜亚洲精品国产| 全免费一级毛片在线播放| 羞羞漫画页面免费入口欢迎你| 免费在线视频一区| 中文字幕免费在线视频| 久久亚洲精品国产精品黑人| 日本免费人成在线网站| 亚洲夂夂婷婷色拍WW47 | 亚洲综合伊人久久大杳蕉| 国内精品免费在线观看| 亚洲精品国产成人| 免费黄色毛片视频| www一区二区www免费| 亚洲天堂中文字幕| 嫩草影院在线免费观看| 亚洲免费在线观看| 亚洲精品国产第1页| 免费午夜爽爽爽WWW视频十八禁| 两个人www免费高清视频| 亚洲校园春色小说| 国产日产亚洲系列最新| 精品国产无限资源免费观看| 亚洲国产成人AV网站| 亚洲国产精品无码久久久蜜芽 | 97在线视频免费公开视频| 精品久久久久久无码免费 | 亚洲一级毛片免费看| 国产乱弄免费视频| 在线人成精品免费视频| 青青青亚洲精品国产| 亚洲毛片一级带毛片基地| 免费a级毛片无码av|