假设电话本里存在SDN(服务号码):"
*666"
发送信息,在收件人栏里输入“ 666”,这时会匹配到电话本里的 "*666"
如果不希望匹配到服务号码,只是发送给222这个号码,需要做以下修改
发送信息,在收件人栏里输入“ 666”,这时会匹配到电话本里的 "*666"
如果不希望匹配到服务号码,只是发送给222这个号码,需要做以下修改
[SOLUTION]
1. 修改ContactsProvider2.javas --> PhoneLookupProjectionMap的定义:
.add(PhoneLookupColumns.RAW_CONTACT_ID, "raw_contacts._id")
// 加入下面这行
.add(PhoneLookup.IS_SDN_CONTACT, "raw_contacts.is_sdn_contact")
//add phone_lookup query fields for mms
.add(Phone._ID, "contacts_view." + Contacts._ID)
// 加入下面这行
.add(PhoneLookup.IS_SDN_CONTACT, "raw_contacts.is_sdn_contact")
//add phone_lookup query fields for mms
.add(Phone._ID, "contacts_view." + Contacts._ID)
2.
packages/apps/Mms/src/com/android/mms/data/Contact.java
packages/apps/Mms/src/com/android/mms/data/Contact.java
(1)
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.RawContacts;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.RawContacts;
(2)
private static final String EXCLUDE_SDN_SELECTION = RawContacts.IS_SDN_CONTACT + "<1";
private static final String EXCLUDE_SDN_SELECTION = RawContacts.IS_SDN_CONTACT + "<1";
(3)
getContactInfoForPhoneNumber函数
getContactInfoForPhoneNumber函数
Cursor cursor = mContext.getContentResolver().query(
Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, normalizedNumber), CALLER_ID_PROJECTION, null, null, null);
Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, normalizedNumber), CALLER_ID_PROJECTION, null, null, null);
修改为:
Cursor cursor = mContext.getContentResolver().query(
Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, normalizedNumber), CALLER_ID_PROJECTION, EXCLUDE_SDN_SELECTION, null, null);
Cursor cursor = mContext.getContentResolver().query(
Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, normalizedNumber), CALLER_ID_PROJECTION, EXCLUDE_SDN_SELECTION, null, null);