本文共 1084 字,大约阅读时间需要 3 分钟。
假设电话本里存在SDN(服务号码):"
*666"
发送信息,在收件人栏里输入“
666”,这时会匹配到电话本里的
"*666"
如果不希望匹配到服务号码,只是发送给222这个号码,需要做以下修改
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) 2. 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; (2) private static final String EXCLUDE_SDN_SELECTION = RawContacts.IS_SDN_CONTACT + "<1"; (3) getContactInfoForPhoneNumber函数 Cursor cursor = mContext.getContentResolver().query( 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); 转载地址:http://fwedi.baihongyu.com/