android 建立/編輯連絡人時,檢測輸入的email/郵件地址格式是否合法

來源:互聯網
上載者:User

標籤:android   io   使用   java   ar   for   sp   cti   on   

JB版本:
1.SIM/USIM卡連絡人:可以直接使用EditSimContactActivity中的USIM_EMAIL_PATTERN,搜尋與“USIM_EMAIL_PATTERN”,將相關code所加的注釋去掉即可


2.手機本地連絡人:修改代碼如下
ContactEditorFragment.java (packages\apps\contacts\src\com\android\contacts\editor) 
A 引入包
import java.util.regex.Pattern;
B 增加變數
private static final String USIM_EMAIL_PATTERN = "0-9][a-z][A-Z][_0-9][a-z][A-Z][-_.*@0-9][a-z][A-Z][-_.+";
C save函數中,
在如下語句:
       if (!hasValidState() || mStatus != Status.EDITING) {
            Log.i(TAG, "[save] !hasValidState() : " + (!hasValidState())
                    + " | mStatus != Status.EDITING : " + (mStatus != Status.EDITING)
                    + " , mStatus : " + mStatus);
            return false;
        }
之後添加:
  //email  
  for (int n = 0; n < mState.size(); n++) {   
   RawContactDelta field =  mState.get(n);
   ArrayList<ValuesDelta> data = field.getMimeEntries("vnd.android.cursor.item/email_v2"); 
   if(data != null )
      for (int m = 0; m < data.size(); m++) {     
         String email = data.get(m).getAsString("data1");
             if (!TextUtils.isEmpty(email)) {  
                if (!Pattern.matches(USIM_EMAIL_PATTERN, email)) {
       
                   Toast.makeText(mContext, R.string.email_invalid, Toast.LENGTH_SHORT).show();
                   getActivity().finish();
                   return false;
               }
            }      
       }
   }
KK版本
1.    SIM/USIM卡連絡人:
SIMEditProcessor.java (alps\packages\apps\contacts\src\com\mediatek\contacts\simservice)
先添加 private boolean mEmailInvalid = false;
然後修改
 private boolean isUSIMUpdateValuesInvalid()
 //mtk add
if (!TextUtils.isEmpty(mUpdatemail)) {
    if (!Pattern.matches(USIM_EMAIL_PATTERN, mUpdatemail)) {
          mEmailInvalid = true;
    }
}
//mtk add end
LogUtils.i(TAG, "mNumberIsNull:" + mNumberIsNull + ",mNumberInvalid:" +
                mNumberInvalid + ",mFixNumberInvalid:" + mFixNumberInvalid);  //參考位置
 
再修改
private boolean isInsertValuesInvalid()
            if (!TextUtils.isEmpty(mUpdateAdditionalNumber)) {
                if (!Pattern.matches(SIM_NUM_PATTERN, PhoneNumberUtilsEx
                        .extractCLIRPortion(mUpdateAdditionalNumber))) {
                    mFixNumberInvalid = true;
                }
            }//參考位置
 //mtk add
if (!TextUtils.isEmpty(mUpdatemail)) {
    if (!Pattern.matches(USIM_EMAIL_PATTERN, mUpdatemail)) {
          mEmailInvalid = true;
    }
}
//mtk add end
 
最後修改
private boolean setSaveFailToastText()
        }*/ else if (mEmailInvalid) {
            mSaveFailToastStrId = R.string.cannot_insert_error_format_email;  //資源請自己添加
            mEmailInvalid = false;
2.手機本地連絡人:修改代碼如下
ContactEditorFragment.java (packages\apps\contacts\src\com\android\contacts\editor) 
A 引入包
import java.util.regex.Pattern;
B 增加變數
private static final String USIM_EMAIL_PATTERN = "0-9][a-z][A-Z][_0-9][a-z][A-Z][-_.*@0-9][a-z][A-Z][-_.+";
C save函數中,
在如下語句:
       if (!hasValidState() || mStatus != Status.EDITING) {
            Log.i(TAG, "[save] !hasValidState() : " + (!hasValidState())
                    + " | mStatus != Status.EDITING : " + (mStatus != Status.EDITING)
                    + " , mStatus : " + mStatus);
            return false;
        }
之後添加:
  //email  
  for (int n = 0; n < mState.size(); n++) {   
   RawContactDelta field =  mState.get(n);
   ArrayList<ValuesDelta> data = field.getMimeEntries("vnd.android.cursor.item/email_v2"); 
   if(data != null )
      for (int m = 0; m < data.size(); m++) {     
         String email = data.get(m).getAsString("data1");
             if (!TextUtils.isEmpty(email)) {  
                if (!Pattern.matches(USIM_EMAIL_PATTERN, email)) {
       
                   Toast.makeText(mContext, R.string.email_invalid, Toast.LENGTH_SHORT).show();
                   getActivity().finish();
                   return false;
               }
            }      
       }
   }

android 建立/編輯連絡人時,檢測輸入的email/郵件地址格式是否合法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.