public class PhoneNumberUtils
extends Object
java.lang.Object | |
↳ | android.telephony.PhoneNumberUtils |
处理电话号码字符串的各种实用程序。
Constants |
|
---|---|
int |
FORMAT_JAPAN 日语格式 |
int |
FORMAT_NANP NANP格式 |
int |
FORMAT_UNKNOWN 当前的语言环境未知,请查找国家/地区代码或不格式化 |
char |
PAUSE |
int |
TOA_International |
int |
TOA_Unknown |
char |
WAIT |
char |
WILD |
Public constructors |
|
---|---|
PhoneNumberUtils() |
Public methods |
|
---|---|
static void |
addTtsSpan(Spannable s, int start, int endExclusive) 将 |
static String |
calledPartyBCDFragmentToString(byte[] bytes, int offset, int length) 就像调用了PartyBCDToString一样,但是字段不是以TOA字节开始的。 |
static String |
calledPartyBCDToString(byte[] bytes, int offset, int length) 3GPP TS 24.008 10.5.4.7被叫方BCD号码另请参见TS 51.011 10.5.1“拨号号码/ ssc字符串”和TS 11.11“10.3.1 EF adn(缩位拨号号码)” |
static boolean |
compare(Context context, String a, String b) 比较电话号码a和b,如果它们足够用于呼叫者ID目的,则返回true。 |
static boolean |
compare(String a, String b) 比较电话号码a和b,如果它们足够用于呼叫方ID目的,则返回true。 |
static String |
convertKeypadLettersToDigits(String input) 翻译任何字母(即 |
static TtsSpan |
createTtsSpan(String phoneNumberString) 创建 |
static CharSequence |
createTtsSpannable(CharSequence phoneNumber) 将提供的 |
static String |
extractNetworkPortion(String phoneNumber) 提取网络地址部分并进行规范化(过滤分隔符)。网络地址部分是DTMF控制数字分隔符(暂停或等待)之前的所有内容,但不包含非可拨号字符。 |
static String |
extractPostDialPortion(String phoneNumber) 提取DTMF控制数字的拨号后序列,暂停和等待。 |
static void |
formatJapaneseNumber(Editable text) 此方法在API级别21中已弃用。请改用链接#formatNumber(String phoneNumber,String defaultCountryIso) |
static void |
formatNanpNumber(Editable text) 此方法在API级别21中已弃用。请改用链接#formatNumber(String phoneNumber,String defaultCountryIso) |
static String |
formatNumber(String phoneNumber, String phoneNumberE164, String defaultCountryIso) 只有在给定号码没有被格式化的情况下,才能格式化电话号码。 |
static void |
formatNumber(Editable text, int defaultFormattingType) 此方法在API级别21中已弃用。请改用链接#formatNumber(String phoneNumber,String defaultCountryIso) |
static String |
formatNumber(String source) 此方法在API级别21中已弃用。请改用链接#formatNumber(String phoneNumber,String defaultCountryIso) |
static String |
formatNumber(String phoneNumber, String defaultCountryIso) 格式化电话号码。 |
static String |
formatNumberToE164(String phoneNumber, String defaultCountryIso) 将指定的 |
static String |
formatNumberToRFC3966(String phoneNumber, String defaultCountryIso) 将指定的 |
static int |
getFormatTypeForLocale(Locale locale) 此方法在API级别21中已弃用。请改用链接#formatNumber(String phoneNumber,String defaultCountryIso) |
static String |
getNumberFromIntent(Intent intent, Context context) 从意图中提取电话号码。 |
static String |
getStrippedReversed(String phoneNumber) 返回相反的网络部分。 |
static final boolean |
is12Key(char c) 如果c是ISO-LATIN字符,则为true 0-9,*,# |
static final boolean |
isDialable(char c) 如果c是ISO-LATIN字符0-9,*,#,+,WILD,则为true |
static boolean |
isEmergencyNumber(String number) 根据RIL和SIM卡提供的紧急号码列表检查给定号码。 |
static boolean |
isGlobalPhoneNumber(String phoneNumber) |
static boolean |
isISODigit(char c) 如果c是ISO-LATIN字符0-9,则为真 |
static boolean |
isLocalEmergencyNumber(Context context, String number) 检查给定号码是否为该用户所在国家的紧急号码。 |
static final boolean |
isNonSeparator(char c) 如果c是ISO-LATIN字符0-9,*,#,+,WILD,WAIT,PAUSE,则为真 |
static final boolean |
isReallyDialable(char c) 如果c是ISO-LATIN字符,则为真0-9,*,#,+(无WILD) |
static final boolean |
isStartsPostDial(char c) 这个字符右侧的任何内容都是拨号后字符串的一部分(例如,这是暂停或等待) |
static boolean |
isVoiceMailNumber(String number) isVoiceMailNumber:根据RIL和SIM卡提供的语音邮件号码检查给定的号码。 |
static boolean |
isWellFormedSmsAddress(String address) 如果 |
static byte[] |
networkPortionToCalledPartyBCD(String s) 注意:调用extractNetworkPortion(),所以不要用于SIM EF [ADN]样式记录如果网络部分为空,则返回null。 |
static byte[] |
networkPortionToCalledPartyBCDWithLength(String s) 与 |
static String |
normalizeNumber(String phoneNumber) 通过删除数字以外的字符来标准化电话号码。 |
static byte[] |
numberToCalledPartyBCD(String number) 将拨号号码转换为BCD字节数组 |
static String |
replaceUnicodeDigits(String number) 替换所有的Unicode(例如 |
static String |
stringFromStringAndTOA(String s, int TOA) 基本上:确保TOA_International数字前面有一个+如果s == null,则返回null |
static String |
stripSeparators(String phoneNumber) 将分隔符从电话号码字符串中剥离。 |
static String |
toCallerIDMinMatch(String phoneNumber) 以*颠倒的顺序返回网络部分中最右边的MIN_MATCH(5)字符这可以用于对存储的列进行数据库查找getStrippedReversed()如果phoneNumber为null,则返回null |
static int |
toaFromString(String s) 返回给定拨号字符串的TOA基本上,如果有+前缀,则返回TOA_International |
Inherited methods |
|
---|---|
From class java.lang.Object
|
void addTtsSpan (Spannable s, int start, int endExclusive)
将 TtsSpan
附加到指定位置提供的 Spannable
,将该位置标注为包含电话号码。
Parameters | |
---|---|
s |
Spannable : A Spannable to annotate. |
start |
int : The starting character position of the phone number in s . |
endExclusive |
int : The position after the ending character in the phone number s . |
String calledPartyBCDFragmentToString (byte[] bytes, int offset, int length)
就像调用了PartyBCDToString一样,但是字段不是以TOA字节开始的。 例如:SIM ADN扩展字段
Parameters | |
---|---|
bytes |
byte
|
offset |
int
|
length |
int
|
Returns | |
---|---|
String |
String calledPartyBCDToString (byte[] bytes, int offset, int length)
3GPP TS 24.008 10.5.4.7被叫方BCD号码另请参见TS 51.011 10.5.1“拨号号码/ ssc字符串”和TS 11.11“10.3.1 EF adn(缩位拨号号码)”
Parameters | |
---|---|
bytes |
byte : the data buffer |
offset |
int : should point to the TOA (aka. TON/NPI) octet after the length byte |
length |
int : is the number of bytes including TOA byte and must be at least 2 |
Returns | |
---|---|
String |
partial string on invalid decode FIXME(mkf) support alphanumeric address type currently implemented in SMSMessage.getAddress() |
boolean compare (Context context, String a, String b)
比较电话号码a和b,如果它们足够用于呼叫者ID目的,则返回true。 检查资源以确定是使用严格还是松散的比较算法。
Parameters | |
---|---|
context |
Context
|
a |
String
|
b |
String
|
Returns | |
---|---|
boolean |
boolean compare (String a, String b)
比较电话号码a和b,如果它们足够用于呼叫方ID目的,则返回true。
Parameters | |
---|---|
a |
String
|
b |
String
|
Returns | |
---|---|
boolean |
String convertKeypadLettersToDigits (String input)
根据ITU E.161和ISO / IEC 9995-8中描述的电话键盘字母映射,将指定电话号码中的任何字母字母(即[A-Za-z])转换为等效数字数字。
Parameters | |
---|---|
input |
String
|
Returns | |
---|---|
String |
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". |
TtsSpan createTtsSpan (String phoneNumberString)
创建 TtsSpan
的供应 String
。
Parameters | |
---|---|
phoneNumberString |
String : A String the entirety of which represents a phone number. |
Returns | |
---|---|
TtsSpan |
A TtsSpan for . |
CharSequence createTtsSpannable (CharSequence phoneNumber)
将提供的 CharSequence
用 TtsSpan
,注释为包含整个电话号码。
Parameters | |
---|---|
phoneNumber |
CharSequence : A CharSequence the entirety of which represents a phone number. |
Returns | |
---|---|
CharSequence |
A CharSequence with appropriate annotations. |
String extractNetworkPortion (String phoneNumber)
提取网络地址部分并进行规范化(过滤分隔符)。网络地址部分是DTMF控制数字分隔符(暂停或等待)之前的所有内容,但不包含非可拨号字符。 请注意,结果中允许使用GSM通配符。 拨号前必须解决这个问题。 如果phoneNumber == null,则返回null
Parameters | |
---|---|
phoneNumber |
String
|
Returns | |
---|---|
String |
String extractPostDialPortion (String phoneNumber)
提取DTMF控制数字的拨号后序列,暂停和等待。 带分隔符。 此字符串可能为空,但不会为空,除非phoneNumber == null。 如果phoneNumber == null,则返回null
Parameters | |
---|---|
phoneNumber |
String
|
Returns | |
---|---|
String |
void formatJapaneseNumber (Editable text)
此方法在API级别21中已弃用。
改用链接#formatNumber(String phoneNumber,String defaultCountryIso)
使用日语格式规则在原地格式化电话号码。 数字将被格式化为:
03-xxxx-xxxx 090-xxxx-xxxx 0120-xxx-xxx +81-3-xxxx-xxxx +81-90-xxxx-xxxx
Parameters | |
---|---|
text |
Editable : the number to be formatted, will be modified with the formatting |
void formatNanpNumber (Editable text)
此方法在API级别21中已弃用。
改用链接#formatNumber(String phoneNumber,String defaultCountryIso)
使用NANP格式化规则在原地格式化电话号码。 数字将被格式化为:
xxxxx xxx-xxxx xxx-xxx-xxxx 1-xxx-xxx-xxxx +1-xxx-xxx-xxxx
Parameters | |
---|---|
text |
Editable : the number to be formatted, will be modified with the formatting |
String formatNumber (String phoneNumber, String phoneNumberE164, String defaultCountryIso)
只有在给定号码没有被格式化的情况下,才能格式化电话号码。
只有可以字符的数字被视为未被格式化。
Parameters | |
---|---|
phoneNumber |
String : the number to be formatted. |
phoneNumberE164 |
String : the E164 format number whose country code is used if the given phoneNumber doesn't have the country code. |
defaultCountryIso |
String : the ISO 3166-1 two letters country code whose convention will be used if the phoneNumberE164 is null or invalid, or if phoneNumber contains IDD. |
Returns | |
---|---|
String |
the formatted number if the given number has been formatted, otherwise, return the given number. |
void formatNumber (Editable text, int defaultFormattingType)
此方法在API级别21中已弃用。
改用链接#formatNumber(String phoneNumber,String defaultCountryIso)
格式化电话号码。 目前支持FORMAT_JAPAN
和FORMAT_NANP
作为第二个参数。
Parameters | |
---|---|
text |
Editable : The number to be formatted, will be modified with the formatting |
defaultFormattingType |
int : The default formatting rules to apply if the number does not begin with +[country_code] |
String formatNumber (String source)
此方法在API级别21中已弃用。
改用链接#formatNumber(String phoneNumber,String defaultCountryIso)
打破给定的数字,并根据数字来自的国家的规则进行格式化。
Parameters | |
---|---|
source |
String : The phone number to format |
Returns | |
---|---|
String |
A locally acceptable formatting of the input, or the raw input if formatting rules aren't known for the number |
String formatNumber (String phoneNumber, String defaultCountryIso)
格式化电话号码。
如果给定号码没有国家代码,电话将被格式化为默认国家的惯例。
Parameters | |
---|---|
phoneNumber |
String : the number to be formatted. |
defaultCountryIso |
String : the ISO 3166-1 two letters country code whose convention will be used if the given number doesn't have the country code. |
Returns | |
---|---|
String |
the formatted number, or null if the given number is not valid. |
String formatNumberToE164 (String phoneNumber, String defaultCountryIso)
将指定的 phoneNumber
为E.164表示。
Parameters | |
---|---|
phoneNumber |
String : the phone number to format. |
defaultCountryIso |
String : the ISO 3166-1 two letters country code. |
Returns | |
---|---|
String |
the E.164 representation, or null if the given phone number is not valid. |
String formatNumberToRFC3966 (String phoneNumber, String defaultCountryIso)
将指定的 phoneNumber
为RFC3966表示形式。
Parameters | |
---|---|
phoneNumber |
String : the phone number to format. |
defaultCountryIso |
String : the ISO 3166-1 two letters country code. |
Returns | |
---|---|
String |
the RFC3966 representation, or null if the given phone number is not valid. |
int getFormatTypeForLocale (Locale locale)
此方法在API级别21中已弃用。
改用链接#formatNumber(String phoneNumber,String defaultCountryIso)
返回给定语言环境的电话号码格式类型。
Parameters | |
---|---|
locale |
Locale : The locale of interest, usually getDefault() |
Returns | |
---|---|
int |
The formatting type for the given locale, or FORMAT_UNKNOWN if the formatting rules are not known for the given locale |
String getNumberFromIntent (Intent intent, Context context)
从意图中提取电话号码。
Parameters | |
---|---|
intent |
Intent : the intent to get the number of |
context |
Context : a context to use for database access |
Returns | |
---|---|
String |
the phone number that would be called by the intent, or null if the number cannot be found. |
String getStrippedReversed (String phoneNumber)
返回相反的网络部分。 该字符串旨在进入数据库查找的索引列。 如果phoneNumber == null,则返回null
Parameters | |
---|---|
phoneNumber |
String
|
Returns | |
---|---|
String |
boolean is12Key (char c)
如果c是ISO-LATIN字符,则为true 0-9,*,#
Parameters | |
---|---|
c |
char
|
Returns | |
---|---|
boolean |
boolean isDialable (char c)
如果c是ISO-LATIN字符0-9,*,#,+,WILD,则为true
Parameters | |
---|---|
c |
char
|
Returns | |
---|---|
boolean |
boolean isEmergencyNumber (String number)
根据RIL和SIM卡提供的紧急号码列表检查给定号码。
Parameters | |
---|---|
number |
String : the number to look up. |
Returns | |
---|---|
boolean |
true if the number is in the list of emergency numbers listed in the RIL / SIM, otherwise return false. |
boolean isGlobalPhoneNumber (String phoneNumber)
Parameters | |
---|---|
phoneNumber |
String
|
Returns | |
---|---|
boolean |
boolean isISODigit (char c)
如果c是ISO-LATIN字符0-9,则为真
Parameters | |
---|---|
c |
char
|
Returns | |
---|---|
boolean |
boolean isLocalEmergencyNumber (Context context, String number)
检查给定号码是否为该用户所在国家的紧急号码。
Parameters | |
---|---|
context |
Context : the specific context which the number should be checked against |
number |
String : the number to look up. |
Returns | |
---|---|
boolean |
true if the specified number is an emergency number for the country the user is currently in. |
boolean isNonSeparator (char c)
如果c是ISO-LATIN字符0-9,*,#,+,WILD,WAIT,PAUSE,则为真
Parameters | |
---|---|
c |
char
|
Returns | |
---|---|
boolean |
boolean isReallyDialable (char c)
如果c是ISO-LATIN字符,则为真0-9,*,#,+(无WILD)
Parameters | |
---|---|
c |
char
|
Returns | |
---|---|
boolean |
boolean isStartsPostDial (char c)
这个字符右侧的任何内容都是拨号后字符串的一部分(例如,这是暂停或等待)
Parameters | |
---|---|
c |
char
|
Returns | |
---|---|
boolean |
boolean isVoiceMailNumber (String number)
isVoiceMailNumber:根据RIL和SIM卡提供的语音邮件号码检查给定的号码。 调用者必须具有READ_PHONE_STATE凭证。
Parameters | |
---|---|
number |
String : the number to look up. |
Returns | |
---|---|
boolean |
true if the number is in the list of voicemail. False otherwise, including if the caller does not have the permission to read the VM number. |
boolean isWellFormedSmsAddress (String address)
如果 address
的网络部分,就我们在设备上可以看到的情况而言,适用于SMS目标地址,则返回true。
Parameters | |
---|---|
address |
String
|
Returns | |
---|---|
boolean |
byte[] networkPortionToCalledPartyBCD (String s)
注意:调用extractNetworkPortion(),所以不要用于SIM EF [ADN]样式记录如果网络部分为空,则返回null。
Parameters | |
---|---|
s |
String
|
Returns | |
---|---|
byte[] |
byte[] networkPortionToCalledPartyBCDWithLength (String s)
与 networkPortionToCalledPartyBCD(String)
相同,但包含一个字节长度的前缀。
Parameters | |
---|---|
s |
String
|
Returns | |
---|---|
byte[] |
String normalizeNumber (String phoneNumber)
通过删除数字以外的字符来标准化电话号码。 如果给定的号码有键盘字母,则这些字母将首先转换为数字。
Parameters | |
---|---|
phoneNumber |
String : the number to be normalized. |
Returns | |
---|---|
String |
the normalized number. |
byte[] numberToCalledPartyBCD (String number)
将拨号号码转换为BCD字节数组
Parameters | |
---|---|
number |
String : dialing number string if the dialing number starts with '+', set to international TOA |
Returns | |
---|---|
byte[] |
BCD byte array |
String replaceUnicodeDigits (String number)
用所有的十进制数字替换所有的Unicode(例如阿拉伯,波斯)数字。
Parameters | |
---|---|
number |
String : the number to perform the replacement on. |
Returns | |
---|---|
String |
the replaced number. |
String stringFromStringAndTOA (String s, int TOA)
基本上:确保TOA_International数字前面有一个+如果s == null,则返回null
Parameters | |
---|---|
s |
String
|
TOA |
int
|
Returns | |
---|---|
String |
String stripSeparators (String phoneNumber)
将分隔符从电话号码字符串中剥离。
Parameters | |
---|---|
phoneNumber |
String : phone number to strip. |
Returns | |
---|---|
String |
phone string stripped of separators. |
String toCallerIDMinMatch (String phoneNumber)
以*颠倒的顺序返回网络部分中最右边的MIN_MATCH(5)字符这可以用于对存储的列进行数据库查找getStrippedReversed()如果phoneNumber为null,则返回null
Parameters | |
---|---|
phoneNumber |
String
|
Returns | |
---|---|
String |
int toaFromString (String s)
返回给定拨号字符串的TOA基本上,如果有+前缀,则返回TOA_International
Parameters | |
---|---|
s |
String
|
Returns | |
---|---|
int |