Получить только мобильный номер контактов

Было несколько вопросов по SO относительно получения номеров контактов с помощью 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

10
задан John J Smith 18 August 2011 в 21:51
поделиться