@Override public void onClick(View v) { String phoneNumber = place.get(Place.PHONE); if (phoneNumber != null) { String strippedNumber = PhoneNumberUtils.stripSeparators(phoneNumber); Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + strippedNumber)); listener.onCallPhone(intent); } } });
public static String formatNumber( String phoneNumber, String phoneNumberE164, String defaultCountryIso) { if (CompatUtils.isLollipopCompatible()) { return PhoneNumberUtils.formatNumber(phoneNumber, phoneNumberE164, defaultCountryIso); } else { // This method was deprecated in API level 21, so it's only used on pre-L SDKs. return PhoneNumberUtils.formatNumber(phoneNumber); } }
public boolean isPhoneGranted(String phone) { for (String grantedPhone : grantedPhones) { if (PhoneNumberUtils.compare(phone, grantedPhone)) return true; } return false; }
private String formatNumber(String unformattedNumber){ TelephonyManager tm = (TelephonyManager)getActivity().getSystemService(Context.TELEPHONY_SERVICE); String countryCode = "us";//tm.getSimCountryIso(); String formattedNumber; if(Build.VERSION.SDK_INT >= 21) { formattedNumber = PhoneNumberUtils.formatNumberToE164(unformattedNumber, countryCode); } else { formattedNumber = PhoneNumberUtils.formatNumber(unformattedNumber); } if(formattedNumber == null){ formattedNumber = unformattedNumber.replaceAll("[-,+]",""); } return formattedNumber; } }
@Override public void setQueryString(String queryString) { mFormattedQueryString = PhoneNumberUtils.formatNumber( PhoneNumberUtils.normalizeNumber(queryString), mCountryIso); super.setQueryString(queryString); } }
@Override public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) { if (TextUtils.isEmpty(number)) { return false; } String numberString = number.toString(); if (!TextUtils.isEmpty(mVoicemailNumber)) { return PhoneNumberUtils.compare(numberString, mVoicemailNumber); } if (PhoneNumberUtils.isVoiceMailNumber(numberString)) { mVoicemailNumber = numberString; return true; } return false; }
/** * Format the provided string of digits into one that represents a properly formatted phone * number. * * @param dialString String of characters to format * @param normalizedNumber the E164 format number whose country code is used if the given * phoneNumber doesn't have the country code. * @param countryIso The country code representing the format to use if the provided normalized * number is null or invalid. * @return the provided string of digits as a formatted phone number, retaining any * post-dial portion of the string. */ @VisibleForTesting static String getFormattedDigits(String dialString, String normalizedNumber, String countryIso) { String number = PhoneNumberUtils.extractNetworkPortion(dialString); // Also retrieve the post dial portion of the provided data, so that the entire dial // string can be reconstituted later. final String postDial = PhoneNumberUtils.extractPostDialPortion(dialString); if (TextUtils.isEmpty(number)) { return postDial; } number = PhoneNumberUtils.formatNumber(number, normalizedNumber, countryIso); if (TextUtils.isEmpty(postDial)) { return number; } return number.concat(postDial); }
@Override public boolean isValid(@Nullable CharSequence value) { return value != null && PhoneNumberUtils.isGlobalPhoneNumber( PhoneNumberUtils.stripSeparators(value.toString())); } };
@Override public void onUnblockedNumber( String number, String countryIso) { String cacheKey = PhoneNumberUtils.formatNumberToE164(number, countryIso); if (!TextUtils.isEmpty(cacheKey)) { mBlockedNumberCache.put(cacheKey, false); notifyDataSetChanged(); } }
if (PhoneNumberUtils.isGlobalPhoneNumber(username)) { info = queryContactInfoForPhoneNumber(username, countryIso, true); updatedInfo.number = number; updatedInfo.formattedNumber = formatPhoneNumber(number, null, countryIso); updatedInfo.normalizedNumber = PhoneNumberUtils.formatNumberToE164( number, countryIso); updatedInfo.lookupUri = createTemporaryContactUri(updatedInfo.formattedNumber);
public static boolean canBlockNumber(Context context, String number, String countryIso) { final String normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso); return !TextUtils.isEmpty(normalizedNumber) && !PhoneNumberUtils.isEmergencyNumber(normalizedNumber); }
public void call(View view){ SharedPreferences getphonNum=getSharedPreferences(PREFS_TITLE,0); String phoneNumber = getphonNum.getString("Phone","No phone number input"); PhoneNumberUtils phoneNumberUtils = new PhoneNumberUtils(); if(phoneNumberUtils.isGlobalPhoneNumber(phoneNumber)){ Intent intentForPhon=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber)); startActivity(intentForPhon); } else { // do something else (throw exception or something) } }
@Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { final String converted = PhoneNumberUtils.convertKeypadLettersToDigits( PhoneNumberUtils.replaceUnicodeDigits(source.toString())); // PhoneNumberUtils.replaceUnicodeDigits performs a character for character replacement, // so we can assume that start and end positions should remain unchanged. CharSequence result = super.filter(converted, start, end, dest, dstart, dend); if (result == null) { if (source.equals(converted)) { // There was no conversion or filtering performed. Just return null according to // the behavior of DialerKeyListener. return null; } else { // filter returns null if the charsequence is to be returned unchanged/unfiltered. // But in this case we do want to return a modified character string (even if // none of the characters in the modified string are filtered). So if // result == null we return the unfiltered but converted numeric string instead. return converted.subSequence(start, end); } } return result; } }
/** * Implementation copied from {@link PhoneNumberUtils#normalizeNumber} */ private static String normalizeNumberInternal(String phoneNumber) { if (TextUtils.isEmpty(phoneNumber)) { return ""; } StringBuilder sb = new StringBuilder(); int len = phoneNumber.length(); for (int i = 0; i < len; i++) { char c = phoneNumber.charAt(i); // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.) int digit = Character.digit(c, 10); if (digit != -1) { sb.append(digit); } else if (sb.length() == 0 && c == '+') { sb.append(c); } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber)); } } return sb.toString(); }
public static String normalizeNumber(String phoneNumber) { if (CompatUtils.isLollipopCompatible()) { return PhoneNumberUtils.normalizeNumber(phoneNumber); } else { return normalizeNumberInternal(phoneNumber); } }
/** * Return whether a given phone number is the configured voicemail number for a * particular phone account. * * @param telecomManager the {@link TelecomManager} to use for checking the number. * @param accountHandle The handle for the account to check the voicemail number against * @param number The number to look up. */ public static boolean isVoiceMailNumber(@Nullable TelecomManager telecomManager, @Nullable PhoneAccountHandle accountHandle, @Nullable String number) { if (telecomManager != null && (CompatUtils.isMarshmallowCompatible() || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "isVoiceMailNumber", PhoneAccountHandle.class, String.class))) { return telecomManager.isVoiceMailNumber(accountHandle, number); } return PhoneNumberUtils.isVoiceMailNumber(number); }
@Override public CharSequence format(CharSequence value, int index) { return NOT_DIGITS.matcher(PhoneNumberUtils.formatNumber(value.toString())).replaceAll(""); } }
private boolean isNumberBlocked(String number) { SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context); String[] blockedNumbers = sharedPref.getString(KEY_PREF_BLOCKED_NUMBERS, "").split("\n"); for (String s : blockedNumbers) { if (PhoneNumberUtils.compare(number, s)) return true; } return false; }
ContactInfo contactInfo = new ContactInfo(); contactInfo.number = number; contactInfo.formattedNumber = PhoneNumberUtils.formatNumber(number, countryIso); contactInfo.normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
@Override public boolean isValid(@Nullable CharSequence value) { return value != null && PhoneNumberUtils.isGlobalPhoneNumber( PhoneNumberUtils.stripSeparators(value.toString())); } };