gpt4 book ai didi

android - 仅获取联系人手机号码

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:05 25 4
gpt4 key购买 nike

SO 上有几个关于使用 Contacts API 获取联系人号码的问题,但我想知道是否有办法识别检索到的号码是手机号码。

以下代码通常显示为获取联系人电话号码的一种方式,因为它获取一个或多个电话号码的列表:

String[] projection = {ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.HAS_PHONE_NUMBER};
String selection = ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1";

Cursor cursor = null;
Cursor phones = null;
try
{
cursor = managedQuery(intent.getData(), projection, selection, null, null);
while (cursor.moveToNext())
{
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));

phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);
while (phones.moveToNext())
{
String pdata = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
Log.v("DATA",pdata);
}
}
}
catch (NullPointerException npe)
{
Log.e(TAG, "Error trying to get Contacts.");
}
finally
{
if (phones != null)
{
phones.close();
}
if (cursor != null)
{
cursor.close();
}
}

虽然这可以正常工作,但有什么方法可以轻松识别电话号码是移动类型(除了尝试使用 Regex 进行模式匹配之外)。

我怀疑一定有一条相关的数据,以便原生应用程序可以对电话号码进行分类 - 如下图所示:

Phone types in Contact info

最佳答案

我偶然发现了一篇博客文章,它很好地解释了如何使用 ContactsContract api here .

因此,在我上面的示例中,我将上面的部分代码更改为:

while (phones.moveToNext()) 
{
int phoneType = phones.getInt(phones.getColumnIndex(Phone.TYPE));
if (phoneType == Phone.TYPE_MOBILE)
{
phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
phoneNumber = phoneNumber.replaceAll("\\s", "");
break;
}
}

这会循环一个联系人的所有电话,如果类型是 Phone.TYPE_MOBILE,那么它会使用这个电话。

希望这可以帮助遇到同样问题的人。

关于android - 仅获取联系人手机号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com