關於使用聯繫人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();
}
}
雖然,這個工作好,有沒有什麼辦法輕鬆識別電話號碼是移動類型(除了試圖與正則表達式匹配)。
我懷疑必須有一個相關的數據塊,從而使本機應用程序可以將手機號碼分類 - 如在下面的圖片:
簡單而完美的+1解決方案 –