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
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
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
String
formatNumber(String number)
Breaks the given number down and formats it according to the rules
for the country the number is from. If the input number already has
formatting it is returned as-is.
Parameters
| number
| 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
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
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
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