我正在尝试在通话记录和Android手机的联系簿中搜索特定的联系号码 但我发现联系号码以不同的方式存储在联系簿和通话记录中。对于例如我有一个联系电话9889880912来搜索通话记录和联系簿。
为此,我执行以下操作:
在android模拟器中添加联系人。当我将联系人的联系电话号码写为9889880912时,它会自动更改为988-988-0912。短划线符号( - )会自动插入联系人号码中。我保存了号码。
从模拟器中调用此号码。
现在,使用我的代码, 当我在9889880912搜索联系人列表中的联系号码时,它没有显示任何结果 当我尝试按联系电话988-988-0912搜索时,会显示联系簿中的联系信息。
但是,当我尝试在通话记录历史记录中搜索988-988-0912时,会显示该消息。但是当我试图在通话记录中搜索9889880912时,我没有得到任何结果。
请帮我解决我的问题。我可以通过联系方式获取9889880912的联系人搜索。
我的代码:
/** Search from contact book **/
Cursor phoneResult = context.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI ,
columnNames,
queryString,
new String[] {String.valueOf(phoneNumber)},
null);
if(phoneResult.getCount() > 0)
Log.d("DEBUG","at least one contact with phonenumber");
/** Search from call log **/
Cursor callLogResult = context.getContentResolver().query(
callLogURI,
columnNames,
Calls.NUMBER + "=?",
new String[]{ String.valueOf(mobileNumber) },
null);
if(callLogResult.getCount() > 0)
Log.d("DEBUG","At least one call Log found");
请帮我解决我的问题。很久以来我一直坚持这一点,无法找到解决方案。
答案 0 :(得分:1)
你使用什么API级别?对此有何限制?
如果5或更高,您可以尝试使用PhoneLookup,请参阅例如:http://developer.android.com/reference/android/provider/ContactsContract.PhoneLookup.html