处理相同号码以+7和8开头,接收到短信需要显示在同一条里面
2014-05-21 11:53
267 查看
SmsProvider.java中的getSingleAddressId函数
if (candidates != null) {
for (int i = 0; i < candidates.size(); i++) {
addressValue = candidates.get(i);
if (addressValue.equals(refinedAddress)) {
retVal = addressesMap.get(addressValue);
break;
}
if (isPhoneNumber && (refinedAddress != null && refinedAddress.length()
<= NORMAL_NUMBER_MAX_LENGTH)
&& (addressValue != null && addressValue.length()
<= NORMAL_NUMBER_MAX_LENGTH)) {
boolean useStrictPhoneNumberComparation = getContext().getResources().getBoolean(
com.android.internal.R.bool.config_use_strict_phone_number_comparation);
if (PhoneNumberUtils.compare(refinedAddress, addressValue,
useStrictPhoneNumberComparation)) {
retVal = addressesMap.get(addressValue);
break;
}
//请修改如下,为新添加的
//addstart
else
{
String temp_refinedAddress
= null;
String temp_addressValue
= null;
// MmsLog.d(LOG_TAG,
"refinedAddress2:"+refinedAddress);
// MmsLog.d(LOG_TAG,
"addressValue2:"+addressValue);
if((refinedAddress.startsWith("+7"))&&(addressValue.startsWith("8"))&&
(refinedAddress.length()== (addressValue.length()+1)))
{
temp_refinedAddress
= refinedAddress.replace("+7", "8");
temp_addressValue
= addressValue;
}
else if((addressValue.startsWith("+7"))&&(refinedAddress.startsWith("8"))&&
(addressValue.length()== (refinedAddress.length()+1)))
{
temp_refinedAddress
= refinedAddress;
temp_addressValue
= addressValue.replace("+7", "8");
}
// MmsLog.d(LOG_TAG, "temp_refinedAddress2:"+temp_refinedAddress);
// MmsLog.d(LOG_TAG, "temp_addressValue2:"+temp_addressValue);
if
(temp_refinedAddress != null&&temp_addressValue != null)
{
if
(PhoneNumberUtils.compare(temp_refinedAddress, temp_addressValue,
useStrictPhoneNumberComparation)
{
// MmsLog.d(LOG_TAG, "PhoneNumberUtils.compare return true");
retVal
= addressesMap.get(addressValue);
MmsLog.d(LOG_TAG,
"retVal:"+retVal);
break;
}
}
}
//add
end
}
}
}
if (candidates != null) {
for (int i = 0; i < candidates.size(); i++) {
addressValue = candidates.get(i);
if (addressValue.equals(refinedAddress)) {
retVal = addressesMap.get(addressValue);
break;
}
if (isPhoneNumber && (refinedAddress != null && refinedAddress.length()
<= NORMAL_NUMBER_MAX_LENGTH)
&& (addressValue != null && addressValue.length()
<= NORMAL_NUMBER_MAX_LENGTH)) {
boolean useStrictPhoneNumberComparation = getContext().getResources().getBoolean(
com.android.internal.R.bool.config_use_strict_phone_number_comparation);
if (PhoneNumberUtils.compare(refinedAddress, addressValue,
useStrictPhoneNumberComparation)) {
retVal = addressesMap.get(addressValue);
break;
}
//请修改如下,为新添加的
//addstart
else
{
String temp_refinedAddress
= null;
String temp_addressValue
= null;
// MmsLog.d(LOG_TAG,
"refinedAddress2:"+refinedAddress);
// MmsLog.d(LOG_TAG,
"addressValue2:"+addressValue);
if((refinedAddress.startsWith("+7"))&&(addressValue.startsWith("8"))&&
(refinedAddress.length()== (addressValue.length()+1)))
{
temp_refinedAddress
= refinedAddress.replace("+7", "8");
temp_addressValue
= addressValue;
}
else if((addressValue.startsWith("+7"))&&(refinedAddress.startsWith("8"))&&
(addressValue.length()== (refinedAddress.length()+1)))
{
temp_refinedAddress
= refinedAddress;
temp_addressValue
= addressValue.replace("+7", "8");
}
// MmsLog.d(LOG_TAG, "temp_refinedAddress2:"+temp_refinedAddress);
// MmsLog.d(LOG_TAG, "temp_addressValue2:"+temp_addressValue);
if
(temp_refinedAddress != null&&temp_addressValue != null)
{
if
(PhoneNumberUtils.compare(temp_refinedAddress, temp_addressValue,
useStrictPhoneNumberComparation)
{
// MmsLog.d(LOG_TAG, "PhoneNumberUtils.compare return true");
retVal
= addressesMap.get(addressValue);
MmsLog.d(LOG_TAG,
"retVal:"+retVal);
break;
}
}
}
//add
end
}
}
}
相关文章推荐
- 短信列表如何让同一个号码的短信只显示一条,刚刚加载短信列表会加载所有的数据列。求指教
- 短信列表如何让同一个号码的短信只显示一条,刚刚加载短信列表会加载所有的数据列。求指教
- 无法显示 XML 页 - 名称以无效字符开头。处理资源 'http://xxxxx' 时出错 的解决方法
- SQL SERVER2000教程-第五章 处理数据 第二十三节 将具有相同字段的记录删除,只留下一条。
- iPhone 处理tableview里面要显示的过长的文字
- android 短信的接收和发送处理
- android调用系统短信Intent时将预填接收号码和内容
- 关于仅显示相同记录中一条的SQL语句
- 用js函数处理事件时,有时候可能因为页面部分组件不需要显示,但仍需要执行js,会有报错,但是不想暴露页面,是业务正常进行。。。。
- Android的短信接收处理----Broadcast和Receiver的使用
- android调用系统短信Intent时将预填接收号码
- Android开发每次都需要按一个退格键或者回车才能显示出我edittext控件里面的内容
- Eclipse里面相同变量的高亮显示
- 无法显示XML页--名称以无效字符开头。处理资源“http://xxxxxx”时出错的解决办法
- 完整的解决oracle乱码shell处理(当每日导入数据库是英文字符集但需要导入中文字符集并且显示中文)
- 创建静态控件——静态控件是用来显示的。只要需要根据size移动其大小就好了,内部显示不用处理
- 无法显示 XML 页 - 名称以无效字符开头。处理资源 'http://xxxxx' 时出错 的解决方法
- 无法显示XML页--名称以无效字符开头。iis处理资源时出错的解决办法
- 无法显示XML页名称以无效字符开头处理资源'http://xx'时出错的解决方法
- android 短信:电信运营商给你的号码可能是+86开头