Kişiler API'sini Kişiler API'sını kullanarak alma konusunda SO'yla ilgili birkaç soru vardı, ancak alınan numaraların bir cep telefonu numarası olduğunu belirlemek için bir yol olup olmadığını öğrenmek istiyorum. bir veya daha fazla telefon numarası listesi alır gibiGet Contacts Yalnızca cep telefonu numarası
Aşağıdaki kod genellikle bir Kişinin telefon numaralarını almak için bir yol olarak gösterilmiştir: iken
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();
}
}
, bu çalışmaları tamam, herhangi bir şekilde orada Telefon numarasının mobil bir tür olduğunu kolayca tanımlayın (Regex ile desen eşleştirmeye çalışmak dışında). Ben oldukça veren bir blog makalesinde tökezledi
basit ve mükemmel +1 çözümü –