android.telephony.PhoneNumberUtils
Various utilities for dealing with phone number strings.
Summary
Constants
Public Constructors
Public Methods
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
Details
Constants
public
static
final
int
FORMAT_NANP
NANP formatting
Constant Value:
1
(0x00000001)
public
static
final
int
FORMAT_UNKNOWN
The current locale is unknown, look for a country code or don't format
Constant Value:
0
(0x00000000)
public
static
final
char
PAUSE
Constant Value:
44
(0x0000002c)
public
static
final
int
TOA_International
Constant Value:
145
(0x00000091)
public
static
final
int
TOA_Unknown
Constant Value:
129
(0x00000081)
public
static
final
char
WAIT
Constant Value:
59
(0x0000003b)
public
static
final
char
WILD
Constant Value:
78
(0x0000004e)
Public Constructors
public
PhoneNumberUtils()
Public Methods
public
static
String
calledPartyBCDFragmentToString(byte[] bytes, int offset, int length)
Like calledPartyBCDToString, but field does not start with a
TOA byte. For example: SIM ADN extension fields
public
static
String
calledPartyBCDToString(byte[] bytes, int offset, int length)
3GPP TS 24.008 10.5.4.7
Called Party BCD Number
See Also TS 51.011 10.5.1 "dialing number/ssc string"
Parameters
bytes
| the data buffer |
offset
| should point to the TOI/NPI octet after the length byte |
length
| is the number of bytes including TOA byte
and must be at least 2 |
Returns
- partial string on invalid decode
FIXME(mkf) support alphanumeric address type
currently implemented in SMSMessage.getAddress()
public
static
boolean
compare(String a, String b)
Compare phone numbers a and b, return true if they're identical
enough for caller ID purposes.
- Compares from right to left
- requires MIN_MATCH (5) characters to match
- handles common trunk prefixes and international prefixes
(basically, everything except the Russian trunk prefix)
Tolerates nulls
public
static
String
convertKeypadLettersToDigits(String input)
Translates any alphabetic letters (i.e. [A-Za-z]) in the
specified phone number into the equivalent numeric digits,
according to the phone keypad letter mapping described in
ITU E.161 and ISO/IEC 9995-8.
Returns
- the input string, with alpha letters converted to numeric
digits using the phone keypad letter mapping. For example,
an input of "1-800-GOOG-411" will return "1-800-4664-411".
public
static
String
extractNetworkPortion(String phoneNumber)
Extracts the network address portion and canonicalizes
(filters out separators.)
Network address portion is everything up to DTMF control digit
separators (pause or wait), but without non-dialable characters.
Please note that the GSM wild character is allowed in the result.
This must be resolved before dialing.
Allows + only in the first position in the result string.
Returns null if phoneNumber == null
public
static
String
extractPostDialPortion(String phoneNumber)
Extracts the post-dial sequence of DTMF control digits, pauses, and
waits. Strips separators. This string may be empty, but will not be null
unless phoneNumber == null.
Returns null if phoneNumber == null
public
static
void
formatNanpNumber(Editable text)
Formats a phone number in-place using the NANP formatting rules. Numbers will be formatted
as:
xxx-xxxx
xxx-xxx-xxxx
1-xxx-xxx-xxxx
+1-xxx-xxx-xxxx
Parameters
text
| the number to be formatted, will be modified with the formatting
|
public
static
void
formatNumber(Editable text, int defaultFormattingType)
Formats a phone number in-place. Currently only supports NANP formatting.
Parameters
text
| The number to be formatted, will be modified with the formatting |
defaultFormattingType
| The default formatting rules to apply if the number does
not begin with +
|
public
static
String
formatNumber(String source)
Breaks the given number down and formats it according to the rules
for the country the number is from.
Parameters
source
| the phone number to format |
Returns
- a locally acceptable formatting of the input, or the raw input if
formatting rules aren't known for the number
public
static
int
getFormatTypeForLocale(Locale locale)
Returns the phone number formatting type for the given locale.
Returns
- the formatting type for the given locale, or FORMAT_UNKNOWN if the formatting
rules are not known for the given locale
public
static
String
getNumberFromIntent(Intent intent, Context context)
Extracts the phone number from an Intent.
Parameters
intent
| the intent to get the number of |
context
| a context to use for database access |
Returns
- the phone number that would be called by the intent, or
null
if the number cannot be found.
public
static
String
getStrippedReversed(String phoneNumber)
Returns the network portion reversed.
This string is intended to go into an index column for a
database lookup.
Returns null if phoneNumber == null
public
static
final
boolean
is12Key(char c)
True if c is ISO-LATIN characters 0-9, *, #
public
static
final
boolean
isDialable(char c)
True if c is ISO-LATIN characters 0-9, *, # , +, WILD
public
static
boolean
isEmergencyNumber(String number)
isEmergencyNumber: checks a given number against the list of
emergency numbers provided by the RIL and SIM card.
Parameters
number
| the number to look up. |
Returns
- if the number is in the list of emergency numbers
listed in the ril / sim, then return true, otherwise false.
public
static
boolean
isGlobalPhoneNumber(String phoneNumber)
public
static
boolean
isISODigit(char c)
True if c is ISO-LATIN characters 0-9
public
static
final
boolean
isNonSeparator(char c)
True if c is ISO-LATIN characters 0-9, *, # , +, WILD, WAIT, PAUSE
public
static
final
boolean
isReallyDialable(char c)
True if c is ISO-LATIN characters 0-9, *, # , + (no WILD)
public
static
final
boolean
isStartsPostDial(char c)
This any anything to the right of this char is part of the
post-dial string (eg this is PAUSE or WAIT)
public
static
boolean
isWellFormedSmsAddress(String address)
Return true iff the network portion of address
is,
as far as we can tell on the device, suitable for use as an SMS
destination address.
public
static
byte[]
networkPortionToCalledPartyBCD(String s)
Note: calls extractNetworkPortion(), so do not use for
SIM EF[ADN] style records
Exceptions thrown if extractNetworkPortion(s).length() == 0
public
static
byte[]
networkPortionToCalledPartyBCDWithLength(String s)
public
static
byte[]
numberToCalledPartyBCD(String number)
Convert a dialing number to BCD byte array
Parameters
number
| dialing number string
if the dialing number starts with '+', set to internationl TOA |
public
static
String
stringFromStringAndTOA(String s, int TOA)
Basically: makes sure there's a + in front of a
TOA_International number
Returns null if s == null
public
static
String
stripSeparators(String phoneNumber)
Strips separators from a phone number string.
Parameters
phoneNumber
| phone number to strip. |
Returns
- phone string stripped of separators.
public
static
String
toCallerIDMinMatch(String phoneNumber)
Returns the rightmost MIN_MATCH (5) characters in the network portion
in *reversed* order
This can be used to do a database lookup against the column
that stores getStrippedReversed()
Returns null if phoneNumber == null
public
static
int
toaFromString(String s)
Returns the TOA for the given dial string
Basically, returns TOA_International if there's a + prefix