在Android上通过电话号码联系

0 android cursor phone-number android-contacts

我知道如何在Android中获取所有联系人,以及如何获取他们的电话号码.

我似乎无法弄清楚如何通过电话号码联系...

这是我编写的当前代码,用于测试哪些电话号码可用:

// Create a cursor
    Cursor cursor = Base.contentResover().query(Phone.CONTENT_URI, null, null,
            null, null);

    if (cursor.moveToNext()) {
        Log.d("CALLOG", cursor.getString(cursor.getColumnIndexOrThrow(Phone.NUMBER)));
    }
Run Code Online (Sandbox Code Playgroud)

问题是我只收到一些电话号码,而我希望得到所有...我做错了什么?

Man*_*hot 7

我不认为你粘贴的片段有什么问题.尝试使用while循环来记录所有电话号码.

关于您通过电话号码获取联系人的要求.请尝试使用以下代码段

Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber)); 
resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,PhoneLookup._ID...
Run Code Online (Sandbox Code Playgroud)

使用_ID确定联系人.

为什么要使用PhoneLookup而不是Phone?

  • PhoneLookup在搜索方面进行了高度优化.

  • 可以使用"(",")"," - "等填充程序在联系人数据库中输入
    电话号码.电话查询有助于解除这些填充程序并仅比较电话号码.

  • 比较Phone中的值不会获取任何结果.

  • 它提供各种其他电话号码相关的信息.(HAS_PHONE_NUMBER,TIMES_CONTACTED,DISPLAY_NAME等)

希望有所帮助.需要帮助请叫我.