연락처를 다루는 응용 프로그램을 만들고 있습니다. 나는 다른 방법을 시도했다. 그러나 그들 중 누구도 일하지 않았다. 나는 탭핑 된 활동 단편 중 하나에서 연락처 세부 사항을 가져왔다. 연락처의 전자 메일 주소를 제외한 다른 모든 세부 정보를 올바르게 가져옵니다. 나는 이 ContactsContract.CommonDataKinds.Email.CONTACT_ID
이 아닌 다른 ID를 가져 오는 이유를 알아 냈습니다. name
, number
, email
, photo_uri
과 함께 전화에서 모든 연락처를 가져 오려면 어떻게해야합니까? 도와주세요! 이메일 주소 이메일을 얻기 위해연락처의 이메일 주소를 가져 오는 동안 null을 얻습니다.
public class FragmentContacts extends Fragment{
ListView contacts;
ArrayList<String> namelist=new ArrayList<String>();
ArrayList<String> number=new ArrayList<String>();
ArrayList<String> contact_id=new ArrayList<String>();
ArrayList<String> contact_image_uri=new ArrayList<String>();
ArrayList<String> contact_email=new ArrayList<String>();
String[] sortImage;
ImageButton addContact;
String email;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_contacts, container, false);
contacts=(ListView)rootView.findViewById(R.id.contact_list);
addContact=(ImageButton)rootView.findViewById(R.id.add_contact);
namelist.clear();
getContacts();
addContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
addNewContact();
}
});
return rootView;
}
public void getContacts() {
ContentResolver cr = getActivity().getApplicationContext().getContentResolver();
Cursor managedCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[]{ContactsContract.CommonDataKinds.Phone._ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone.PHOTO_URI}, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE ASC");
while (managedCursor.moveToNext()) {
String id = managedCursor.getString(0);
String name = managedCursor.getString(1);
String phoneNumber = managedCursor.getString(2);
String image_uri=managedCursor.getString(3);
//email=managedCursor.getString(4);
email=getEmail(id);
System.out.println("Email is "+email);
contact_id.add(id);
// System.out.println("Id is "+id+" "+"Name is "+name);
namelist.add(name);
number.add(phoneNumber);
contact_image_uri.add(image_uri);
contact_email.add(email);
}
managedCursor.close();
ContactAdapter a = new ContactAdapter(getActivity(), contact_id, namelist, number,contact_image_uri,contact_email);
contacts.setAdapter(a);
}
public void addNewContact()
{
Intent in= new Intent(getContext(),AddContact.class);
startActivity(in);
}
private String getEmail(String contactId) {
String mailE=null;
ContentResolver cr = getActivity().getApplicationContext().getContentResolver();
Cursor cursor = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID +" = ?",
new String[]{contactId}, null);
while (cursor.moveToNext())
{
mailE=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS));
System.out.println("In Between Email is "+mailE);
}
cursor.close();
return mailE;
}
}
당신이 SO 링크 http://stackoverflow.com/questions/10117049/get-only-email-address-from- 시도해 봤어 contact-list-android –
http://stackoverflow.com/questions/25717989/cannot-retrieve-email-from-contacts – kgandroid
[연락처 목록 Android에서 이메일 주소 만 가져 오기] 가능한 복제본 (http://stackoverflow.com/ 질문/10117049/get-only-email-address-from-contact-list-android) – Spartan