Android 怎么去掉联系人、通话记录、拨号列表界面中的电话号码中间的空格?

前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         CSDN
http://www.csdn.net
         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

 

怎么去掉联系人、通话记录、拨号列表界面中的电话号码中间的空格?
去掉空格也就是去掉号码格式化,对所有的号码串将不进行号码格式化。
1. 注解掉格式化处理
    FILE: PhoneNumberFormatter.java
    PATH: alps/packages/apps/contacts/src/com/android/contacts/Util
---------------------------------------------------------------------------------------------------------------------------
    public static final void setPhoneNumberFormattingTextWatcher(Context context,
            TextView textView, Handler handler) {
    // Deleted
    //        new TextWatcherLoadAsyncTask(ContactsUtils.getCurrentCountryIso(context), textView, handler)
    //                .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null);

    // End

    }
 
2. 注解调用Formater的一行代码
    FILE: PhoneNumberFormattingTextWatcher.java
    PATH: alps/frameworks/base/telephony/java/android/Telephony
---------------------------------------------------------------------------------------------------------------------------    
    public PhoneNumberFormattingTextWatcher(String countryCode) {
        /** M: Get test mode from SystemProperties, mtk04070, 2012.02.06 */
        getTestMode();
        if (countryCode == null) throw new IllegalArgumentException();
    //        mFormatter = PhoneNumberUtil.getInstance().getAsYouTypeFormatter(countryCode);
    }
 
3. 修改formatNumber方法直接返回原始号码,不会其进行格式化
    FILE: PhoneNumberUtils.java 
    PATH: alps/frameworks/base/telephony/java/android/Telephony
---------------------------------------------------------------------------------------------------------------------------    
    /**
     * Format a phone number.
     * <p>
     * If the given number doesn‘t have the country code, the phone will be
     * formatted to the default country‘s convention.
     *
     * @param phoneNumber
     *            the number to be formatted.
     * @param defaultCountryIso
     *            the ISO 3166-1 two letters country code whose convention will
     *            be used if the given number doesn‘t have the country code.
     * @return the formatted number, or null if the given number is not valid.
     *
     * @hide
     */
    public static String formatNumber(String phoneNumber, String defaultCountryIso) {
          // Before modified
//        // Do not attempt to format numbers that start with a hash or star symbol.
//        if (phoneNumber.startsWith("#") || phoneNumber.startsWith("*")) {
//            return phoneNumber;
//        }
//        PhoneNumberUtil util = PhoneNumberUtil.getInstance();
//        String result = null;
//        try {
//            PhoneNumber pn = util.parseAndKeepRawInput(phoneNumber, defaultCountryIso);
//            result = util.formatInOriginalFormat(pn, defaultCountryIso);
//        } catch (NumberParseException e) {
//        }
//        return result;
          // After modified
          return phoneNumber;   // Just return, don‘t format the phoneNumber
    }
 
4. 去掉导入号码时的格式化处理代码
    FILE: AbstractStartSIMService.java
    PATH: alps/packages/apps/contacts/src/com/mediatek/contacts/Simcontact
    (1) 去掉 actuallyImportOneSimContact() 方法中对 phoneNumber 的格式化处理代码 :
---------------------------------------------------------------------------------------------------------------------------    
                    /*
                     * Bug Fix by Mediatek Begin. Original Android‘s code: xxx
                     * CR ID: ALPS00289127 Descriptions:
                     */
                    Log.i(TAG, "[actuallyImportOneSimContactphoneNumber before : " + phoneNumber);
//                    AsYouTypeFormatter mFormatter = PhoneNumberUtil.getInstance()
//                            .getAsYouTypeFormatter(countryCode);
//                    char[] cha = phoneNumber.toCharArray();
//                    int ii = cha.length;
//                    for (int num = 0; num < ii; num++) {
//                        phoneNumber = mFormatter.inputDigit(cha[num]);
//                    }
                    Log.i(TAG, "[actuallyImportOneSimContactphoneNumber after : " + phoneNumber);
                    /*
                     * Bug Fix by Mediatek End.
                     */
 
    (2) 去掉 actuallyImportOneSimContact() 方法中对 additionalNumber 的格式化处理代码:
---------------------------------------------------------------------------------------------------------------------------    
                        /*
                         * Bug Fix by Mediatek Begin. Original Android‘s code:
                         * xxx CR ID: ALPS00289127 Descriptions:
                         */
                        Log.i(TAG, "[actuallyImportOneSimContactadditionalNumber before : "
                                + additionalNumber);
//                        AsYouTypeFormatter mFormatter = PhoneNumberUtil.getInstance()
//                                .getAsYouTypeFormatter(countryCode);
//                        char[] cha = additionalNumber.toCharArray();
//                        int ii = cha.length;
//                        for (int num = 0; num < ii; num++) {
//                            additionalNumber = mFormatter.inputDigit(cha[num]);
//                        }
                        Log.i(TAG, "[actuallyImportOneSimContactadditionalNumber after : "
                                + additionalNumber);
                        /*
                         * Bug Fix by Mediatek End.
                         */
---------------------------------------------------------------------------------------------------------------------------    
---------------------------------------------------------------------------------------------------------------------------    

Android 怎么去掉联系人、通话记录、拨号列表界面中的电话号码中间的空格?

上一篇:Application 类


下一篇:移动搜索,百度的布局在“船”不在“票”