當前位置: 首頁>>代碼示例>>Java>>正文


Java PhoneNumberUtils.convertKeypadLettersToDigits方法代碼示例

本文整理匯總了Java中android.telephony.PhoneNumberUtils.convertKeypadLettersToDigits方法的典型用法代碼示例。如果您正苦於以下問題:Java PhoneNumberUtils.convertKeypadLettersToDigits方法的具體用法?Java PhoneNumberUtils.convertKeypadLettersToDigits怎麽用?Java PhoneNumberUtils.convertKeypadLettersToDigits使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.telephony.PhoneNumberUtils的用法示例。


在下文中一共展示了PhoneNumberUtils.convertKeypadLettersToDigits方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getCursorForRecipientFilter

import android.telephony.PhoneNumberUtils; //導入方法依賴的package包/類
/***
 * If the code below looks shitty to you, that's because it was taken
 * directly from the Android source, where shitty code is all you get.
 */

public Cursor getCursorForRecipientFilter(CharSequence constraint,
    ContentResolver mContentResolver)
{
  final String SORT_ORDER = Contacts.TIMES_CONTACTED + " DESC," +
                            Contacts.DISPLAY_NAME + "," +
                            Contacts.Data.IS_SUPER_PRIMARY + " DESC," +
                            Phone.TYPE;

  final String[] PROJECTION_PHONE = {
      Phone._ID,                  // 0
      Phone.CONTACT_ID,           // 1
      Phone.TYPE,                 // 2
      Phone.NUMBER,               // 3
      Phone.LABEL,                // 4
      Phone.DISPLAY_NAME,         // 5
  };

  String phone = "";
  String cons  = null;

  if (constraint != null) {
    cons = constraint.toString();

    if (RecipientsAdapter.usefulAsDigits(cons)) {
      phone = PhoneNumberUtils.convertKeypadLettersToDigits(cons);
      if (phone.equals(cons) && !PhoneNumberUtils.isWellFormedSmsAddress(phone)) {
        phone = "";
      } else {
        phone = phone.trim();
      }
    }
  }
  Uri uri = Uri.withAppendedPath(Phone.CONTENT_FILTER_URI, Uri.encode(cons));
  String selection = String.format("%s=%s OR %s=%s OR %s=%s",
                                   Phone.TYPE,
                                   Phone.TYPE_MOBILE,
                                   Phone.TYPE,
                                   Phone.TYPE_WORK_MOBILE,
                                   Phone.TYPE,
                                   Phone.TYPE_MMS);

  Cursor phoneCursor = mContentResolver.query(uri,
                                              PROJECTION_PHONE,
                                              null,
                                              null,
                                              SORT_ORDER);

  if (phone.length() > 0) {
    ArrayList result = new ArrayList();
    result.add(Integer.valueOf(-1));                    // ID
    result.add(Long.valueOf(-1));                       // CONTACT_ID
    result.add(Integer.valueOf(Phone.TYPE_CUSTOM));     // TYPE
    result.add(phone);                                  // NUMBER

  /*
  * The "\u00A0" keeps Phone.getDisplayLabel() from deciding
  * to display the default label ("Home") next to the transformation
  * of the letters into numbers.
  */
    result.add("\u00A0");                               // LABEL
    result.add(cons);                                   // NAME

    ArrayList<ArrayList> wrap = new ArrayList<ArrayList>();
    wrap.add(result);

    ArrayListCursor translated = new ArrayListCursor(PROJECTION_PHONE, wrap);

    return new MergeCursor(new Cursor[] { translated, phoneCursor });
  } else {
    return phoneCursor;
  }
}
 
開發者ID:XecureIT,項目名稱:PeSanKita-android,代碼行數:78,代碼來源:ContactAccessor.java

示例2: runQueryOnBackgroundThread

import android.telephony.PhoneNumberUtils; //導入方法依賴的package包/類
@Override
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
    String wherePhone = null;
    String whereEmail = null;
    String phone = "";
    String cons = null;

    if (constraint != null) {
        cons = constraint.toString();

        if (usefulAsDigits(cons)) {
            phone = PhoneNumberUtils.convertKeypadLettersToDigits(cons);
            if (phone.equals(cons)) {
                phone = "";
            } else {
                phone = phone.trim();
            }
        }

        String filter = DatabaseUtils.sqlEscapeString(cons + '%');
        String filterLastName = DatabaseUtils.sqlEscapeString("% " + cons + '%');

        StringBuilder s = new StringBuilder();
        s.append("((name LIKE ");
        s.append(filter);
        s.append(") OR (name LIKE ");
        s.append(filterLastName);
        s.append(") OR (REPLACE(REPLACE(REPLACE(REPLACE(number, ' ', ''), '(', ''), ')', ''), '-', '') LIKE ");
        s.append(filter);
        s.append(")) AND type = ");
        s.append(Phones.TYPE_MOBILE);
        wherePhone = s.toString();

        /*s.delete(0, s.length()); // Clear the string builder.
        s.append("((name LIKE ");
        s.append(filter);
        s.append(") OR (data LIKE ");
        s.append(filter);
        s.append(")) AND kind = ");
        s.append(Contacts.KIND_EMAIL);
        whereEmail = s.toString();*/
    }

    Cursor phoneCursor = SqliteWrapper.query(mContext, mContentResolver,
            Phones.CONTENT_URI, PROJECTION_PHONE, wherePhone, null, SORT_ORDER);
    /*Cursor emailCursor = SqliteWrapper.query(mContext, mContentResolver,
            ContactMethods.CONTENT_URI, PROJECTION_EMAIL, whereEmail, null, SORT_ORDER);*/

    if (phone.length() > 0) {
        ArrayList result = new ArrayList();
        result.add(Integer.valueOf(-1));                    // ID
        result.add(Long.valueOf(-1));                       // PERSON_ID
        result.add(Integer.valueOf(Phones.TYPE_CUSTOM));    // TYPE
        result.add(phone);                                  // NUMBER

        /*
         * The "\u00A0" keeps Phones.getDisplayLabel() from deciding
         * to display the default label ("Home") next to the transformation
         * of the letters into numbers.
         */
        result.add("\u00A0");                               // LABEL
        result.add(cons);                                   // NAME

        ArrayList<ArrayList> wrap = new ArrayList<ArrayList>();
        wrap.add(result);

        ArrayListCursor translated = new ArrayListCursor(PROJECTION_PHONE, wrap);

        return new MergeCursor(new Cursor[] { translated, phoneCursor/*, emailCursor*/ });
    } else {
        return new MergeCursor(new Cursor[] { phoneCursor/*, emailCursor*/ });
    }
}
 
開發者ID:sdrausty,項目名稱:buildAPKsApps,代碼行數:74,代碼來源:RecipientsAdapter.java


注:本文中的android.telephony.PhoneNumberUtils.convertKeypadLettersToDigits方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。