English | Site Directory

Android - An Open Handset Alliance Project

android.telephony
public class

android.telephony.PhoneNumberUtils

java.lang.Object
android.telephony.PhoneNumberUtils

Various utilities for dealing with phone number strings.

Summary

Constants

      Value  
char  PAUSE    44  0x0000002c 
int  TOA_International    145  0x00000091 
int  TOA_Unknown    129  0x00000081 
char  WAIT    59  0x0000003b 
char  WILD    78  0x0000004e 

Public Constructors

          PhoneNumberUtils()

Public Methods

      static  String  calledPartyBCDFragmentToString(byte[] bytes, int offset, int length)
Like calledPartyBCDToString, but field does not start with a TOA byte.
      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"
      static  boolean  compare(String a, String b)
Compare phone numbers a and b, return true if they're identical enough for caller ID purposes.
      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.
      static  String  extractPostDialPortion(String phoneNumber)
Extracts the post-dial sequence of DTMF control digits, pauses, and waits.
      static  String  formatNumber(String number)
Breaks the given number down and formats it according to the rules for the country the number is from.
      static  String  getStrippedReversed(String phoneNumber)
Returns the network portion reversed.
    final  static  boolean  is12Key(char c)
True if c is ISO-LATIN characters 0-9, *, #
    final  static  boolean  isDialable(char c)
True if c is ISO-LATIN characters 0-9, *, # , +, WILD
      static  boolean  isISODigit(char c)
True if c is ISO-LATIN characters 0-9
    final  static  boolean  isNonSeparator(char c)
True if c is ISO-LATIN characters 0-9, *, # , +, WILD, WAIT, PAUSE
    final  static  boolean  isReallyDialable(char c)
True if c is ISO-LATIN characters 0-9, *, # , + (no WILD)
    final  static  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)
      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.
      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
      static  byte[]  networkPortionToCalledPartyBCDWithLength(String s)
Same as networkPortionToCalledPartyBCD(String), but includes a one-byte length prefix.
      static  byte[]  numberToCalledPartyBCD(String number)
Convert a dialing number to BCD byte array
      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
      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
      static  int  toaFromString(String s)
Returns the TOA for the given dial string Basically, returns TOA_International if there's a + prefix
Methods inherited from class java.lang.Object

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)

Same as networkPortionToCalledPartyBCD(String), but includes a one-byte length prefix.

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

Returns

  • BCD byte array

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
Build m5-rc15i - 10 Jun 2008 13:54