Java 使用什么SQL查询转换为字母的数字
措辞有点复杂,很抱歉,但情况是这样的 在我的手机上,我走到拨号屏幕,一个键盘弹出。我输入:“728”。在名单的顶端是帕特里克·拉斯纳森和保罗·奥瑟拉斯纳森。显然,728正在使用手机上与字母匹配的标准字母表进行转换(即7是PQRS,2是ABC,8是TUV) 我的问题是,如何查询姓名以包含转换后的号码并找到相应的联系人?基本上,当我给出的是728时,我的手机屏幕上是如何搜索“Paul”或“Pat”的 我用于查询的代码是:Java 使用什么SQL查询转换为字母的数字,java,android,sqlite,android-contacts,contactscontract,Java,Android,Sqlite,Android Contacts,Contactscontract,措辞有点复杂,很抱歉,但情况是这样的 在我的手机上,我走到拨号屏幕,一个键盘弹出。我输入:“728”。在名单的顶端是帕特里克·拉斯纳森和保罗·奥瑟拉斯纳森。显然,728正在使用手机上与字母匹配的标准字母表进行转换(即7是PQRS,2是ABC,8是TUV) 我的问题是,如何查询姓名以包含转换后的号码并找到相应的联系人?基本上,当我给出的是728时,我的手机屏幕上是如何搜索“Paul”或“Pat”的 我用于查询的代码是: private void myMethod(String query){
private void myMethod(String query){
if(query != null){
phoneWhere = ContactsContract.Data.MIMETYPE +
" = ? AND " +
"(" +
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME +
" LIKE ? COLLATE NOCASE " +
"OR " +
ContactsContract.CommonDataKinds.Phone.NUMBER +
" LIKE ?" +
")";
phoneWhereParams = new String[]{
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, query, query};
} else {
phoneWhere = ContactsContract.Data.MIMETYPE + " = ?";
phoneWhereParams = new String[]{
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE};
}
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
MY_PROJECTION_DEFINED_ELSEWHERE,
phoneWhere,
phoneWhereParams,
SORT_BY_DISPLAY_NAME_STRING_DEFINED_ELSEWHERE);
}
这非常好用,我可以用它来查询联系人列表。但是,我想加入这项新功能,对我的设备的主拨号屏幕进行反向工程
有人知道这段代码会是什么样子吗?或者有人能告诉我应该寻找什么样的样本吗?它可能是一个简单的表映射
2
->abc
,3
->def
,然后在regex'[abc][def]这样的名称处构建一个查询“
或其他任何内容。你确定它没有查看联系人的电话号码吗?@tyczj它是全名以及名字、中间名和姓氏。如果你愿意,你可以在安卓设备上试用。例如,76
将返回“Paul otherLastNameson”可能您正在搜索\u id
以获取姓名和其他详细信息?对于您的每个联系人,使用PhoneNumberUtils\convertKeypadLettersToDigits
存储哈希,然后在中使用它,其中条款可能是一个简单的表映射2
->abc
,3
->def
,然后在regex'[abc][def]'之类的地方构建一个查询或其他任何名称。您确定它没有查看联系人的电话号码吗?@tyczj它是全名以及名字、中间名和姓氏。如果你愿意,你可以在安卓设备上试用。例如,76
将返回“Paul otherLastNameson”,也许您正在搜索\u id
以获取姓名和其他详细信息?对于您的每个联系人,使用PhoneNumberUtils\convertKeypadLettersToDigits
存储哈希值,然后在where
子句中使用它