Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用什么SQL查询转换为字母的数字_Java_Android_Sqlite_Android Contacts_Contactscontract - Fatal编程技术网

Java 使用什么SQL查询转换为字母的数字

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){

措辞有点复杂,很抱歉,但情况是这样的

在我的手机上,我走到拨号屏幕,一个键盘弹出。我输入:“728”。在名单的顶端是帕特里克·拉斯纳森和保罗·奥瑟拉斯纳森。显然,728正在使用手机上与字母匹配的标准字母表进行转换(即7是PQRS,2是ABC,8是TUV)

我的问题是,如何查询姓名以包含转换后的号码并找到相应的联系人?基本上,当我给出的是728时,我的手机屏幕上是如何搜索“Paul”或“Pat”的

我用于查询的代码是:

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
子句中使用它