1

我有一个功能可以使用部分电话号码获取所有联系人,在这里......

Cursor c = getContentResolver().query(Data.CONTENT_URI,
              new String[] {Data._ID, Phone.NUMBER},
              Phone.NUMBER + " like ?",
              new String[] {"%"+String.valueOf(phoneNumber) +"%"}, null);
while (c.moveToNext()) {
    String id = c.getString(0);
    String number = c.getString(1);
    Log.d("id",id);
    Log.d("number",number);
}       

但问题是 - 如果我插入 31221我无法获得与电话号码类似的联系人312-2131-321"-"或者我如果我插入0558836298我无法获得+62558836298因为"+"和国家代码。谢谢您的帮助

PS我确实知道

Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));

但这只有在您输入整数时才有效。

4

1 回答 1

2

请尝试替换此:

Phone.NUMBER

有了这个:

"replace("+Phone.NUMBER+", '-','')"

它使用 SQLite 中的替换功能来删除连字符。

于 2013-06-09T08:20:29.737 回答