本文介绍了ContactPicker过滤的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在一个简单的Android应用程序,我需要使用联系人选择器从地址簿中获得的电话号码。
In a simple Android App I need to get phone number from Address Book using Contacts picker.
要打开联系人选择器我用以下code:
To open Contact picker I use following code:
Intent intent = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
所有工作正常,但在通讯录中选择器,我可以从Gmail中查看联系人,如果我在手机应用程序我只看到Addess本书的联系人使用联系人选择器。我怎么可以显示联系人选择器作为手机应用程序(不包括Gmail联系人)?
All works fine but in Contacts Picker I can see contacts from gmail, if I use Contact Picker in Phone App I see only Addess book's contacts. How can I show a Contact Picker as Phone App (without gmail contacts)?
推荐答案
这帮助我只是过滤电话号码:
This helped me Filter just for phone numbers:
Cursor cursor = managedQuery(intent.getData(), null, null, null, null);
ArrayList<String> phoneNumber = new ArrayList<String>();
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor
.getString(cursor
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
phoneNumber.add(name);
String hasPhone = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1")) {
hasPhone = "true";
} else {
hasPhone = "false";
}
if (Boolean.parseBoolean(hasPhone)) {
Cursor phones = null;
phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
while (phones.moveToNext()) {
phoneNumber
.add(phones.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
}
phones.close();
}
}
cursor.close();
这篇关于ContactPicker过滤的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!