0
我有一个问题。在我的申请中,我打开电话簿并提取您选择的人员的姓名和电话号码。下面是我做的代码:
multichose电话簿android
public void showContactsChooser(){
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1001);
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data){
super.onActivityResult(reqCode, resultCode, data);
switch(reqCode){
case (1001):
if (resultCode == Activity.RESULT_OK){
ContentResolver cr = getContentResolver();
Uri contactData = data.getData();
Cursor c = cr.query(contactData, null, null, null, null);
String phone = "";
if (c.moveToFirst()){
String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
"DISPLAY_NAME = '" + name + "'", null, null);
if (cursor.moveToFirst()) {
String contactId =
cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//
// Get all phone numbers.
//
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
while (phones.moveToNext()) {
phone = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
int type = phones.getInt(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
switch (type) {
case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE:
break;
}
}
phones.close();
Toast.makeText(getApplicationContext(), name + " " + phone, Toast.LENGTH_SHORT).show();
Log.d("PICK", "Contact " + name + " " + phone);
}
}
}
}
}
在这段代码我打开电话簿,当你点击一个联系人姓名,并得到一个电话号码,然后再回到老Activiti的。但我只能选择一个人。我需要选择几个。我的问题:
我可以在电话簿中选择几个人,然后将它们传递给应用程序。以及如何做到这一点?
是的,我这样做,应用程序拉联系人并将其添加到列表中。但是,如果联系人有多个号码,它会被复制,并且如果很多联系人对我不利,因为我在应用程序服务器中有朋友,这些朋友在联系人下 – metalink