मैं केवल उन संपर्क नामों को प्रदर्शित करना चाहता हूं जिनके ईमेल पते मौजूद हैं। अन्यथा संपर्क नाम सूची में प्रदर्शित नहीं किया जाना चाहिए। मैं यह कैसे कर सकता हूँ? क्या कोई मेरी मदद कर सकता हैं?संपर्क सूची से केवल ईमेल पता प्राप्त करें Android
उत्तर
public ArrayList<String> getNameEmailDetails(){
ArrayList<String> names = new ArrayList<String>();
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor cur1 = cr.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
new String[]{id}, null);
while (cur1.moveToNext()) {
//to get the contact names
String name=cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
Log.e("Name :", name);
String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.e("Email", email);
if(email!=null){
names.add(name);
}
}
cur1.close();
}
}
return names;
}
उपर्युक्त विधि नामों की एक सरणी सूची लौटाती है जिसमें ईमेल आईडी है।
यदि आप पहले ही संपर्क और उनके ईमेल पते (यदि यह मौजूद है) प्राप्त कर सकते हैं, तो आप अपनी सूची से कोई ईमेल पता नहीं वाले संपर्कों को क्यों हटाते हैं?
एंड्रॉइड संपर्क API पर अधिक जानकारी के लिए here देखें।
अरे धन्यवाद IrAndroid। हाँ मैं केवल यही कर रहा हूँ। लेकिन मुझे सभी संपर्क नाम मिल रहे हैं। क्या आप कृपया मुझे इसके लिए कुछ कोड दिखा सकते हैं? –
यहां आप जो पूछ रहे हैं उसके लिए एक समान प्रश्न है: http://stackoverflow.com/questions/5205999/android-get-a-cursor-only-with-contacts-that-have-an-email-listed-android-2 -0। – lrAndroid
अरे मैंने इस लिंक पर दिए गए कोड को आजमाया। लेकिन मुझे ईमेल पता मिल रहा है। नाम नहीं यदि ईमेल पता मौजूद है तो मैं संपर्क नाम प्राप्त करना चाहता हूं। क्या आप मुझे कुछ कोड दे सकते हैं? ताकि मैं कुछ आइडिया प्राप्त कर सकूं। –
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Cursor emailCur = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id},null);
while (emailCur.moveToNext()) {
String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.e("Email",name+" "+email);
}
emailCur.close();
}
}
धन्यवाद फिर से अग्रवाल :) –
यहां ईमेल पते खींचने के लिए मेरी सुपर फास्ट क्वेरी है। यह रूप में अन्य उत्तर द्वारा सुझाए गए सभी संपर्क कॉलम खींच की तुलना में बहुत तेजी से होता है ...
public ArrayList<String> getNameEmailDetails() {
ArrayList<String> emlRecs = new ArrayList<String>();
HashSet<String> emlRecsHS = new HashSet<String>();
Context context = getActivity();
ContentResolver cr = context.getContentResolver();
String[] PROJECTION = new String[] { ContactsContract.RawContacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID,
ContactsContract.CommonDataKinds.Email.DATA,
ContactsContract.CommonDataKinds.Photo.CONTACT_ID };
String order = "CASE WHEN "
+ ContactsContract.Contacts.DISPLAY_NAME
+ " NOT LIKE '%@%' THEN 1 ELSE 2 END, "
+ ContactsContract.Contacts.DISPLAY_NAME
+ ", "
+ ContactsContract.CommonDataKinds.Email.DATA
+ " COLLATE NOCASE";
String filter = ContactsContract.CommonDataKinds.Email.DATA + " NOT LIKE ''";
Cursor cur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, PROJECTION, filter, null, order);
if (cur.moveToFirst()) {
do {
// names comes in hand sometimes
String name = cur.getString(1);
String emlAddr = cur.getString(3);
// keep unique only
if (emlRecsHS.add(emlAddr.toLowerCase())) {
emlRecs.add(emlAddr);
}
} while (cur.moveToNext());
}
cur.close();
return emlRecs;
}
मैं 'अग्रवाल शंकर' द्वारा प्रदान की कोड की कोशिश की लेकिन इसके बारे में 4 सेकंड ले लिया अपने परीक्षण उपकरण पर संपर्कों पाने के लिए, और इस कोड के बारे में 0.04 सेकंड लिया। यह तेज़ कोड मैंने SaluSafe ऐप में शामिल किया था। Download SaluSafe from google play।
अंतिम उत्तर .. इस का उपयोग करना चाहिए –
सुपर फास्ट, दूसरे समाधान के बाद तेजी से। –
यह जवाब होना चाहिए। दूसरा नहीं। +1 – alicanbatur
संपर्क सूची से संपर्क ईमेल प्राप्त करने का एक आसान तरीका यहां दिया गया है। आप नीचे दिए गए विधि में उपयोगकर्ता के संपर्क आईडी पारित करने के लिए और की जरूरत है यह आप ईमेल आईडी वापस आ जाएगी अगर
public String getEmail(String contactId) {
String emailStr = "";
final String[] projection = new String[]{ContactsContract.CommonDataKinds.Email.DATA,
ContactsContract.CommonDataKinds.Email.TYPE};
Cursor emailq = managedQuery(ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, ContactsContract.Data.CONTACT_ID + "=?", new String[]{contactId}, null);
if (emailq.moveToFirst()) {
final int contactEmailColumnIndex = emailq.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA);
while (!emailq.isAfterLast()) {
emailStr = emailStr + emailq.getString(contactEmailColumnIndex) + ";";
emailq.moveToNext();
}
}
return emailStr;
}
और यह भी अगर आप कैसे इस लिंक का अनुसरण करके अपने एप्लिकेशन में संपर्क सूची प्राप्त करने के लिए सीखना चाहते हैं
एक और समाधान। इसमें फोन नंबर, ईमेल, संगठन और यहां तक कि पूरी तरह से कस्टम डेटा भी शामिल है, इसलिए आप ContactsContract.Data.MIMETYPE
के साथ फ़िल्टर किए बिना इसका उपयोग नहीं कर सकते हैं। इस डेटाबेस में एक पंक्ति एक निश्चित खाते से संबंधित मान (या मान, इसमें 15 सामान्य कॉलम हैं) रखती है, इसलिए आपको उन्हें स्वयं समूहित करने की आवश्यकता हो सकती है। मुझे इसे स्वत: पूर्ण करने के लिए जरूरी था, इसलिए प्रारूप (प्रति पंक्ति ईमेल) सही था।
- 1. हॉटमेल संपर्क ईमेल पते कैसे प्राप्त करें?
- 2. पता पुस्तिका संपर्क समूह प्राप्त करें?
- 3. एक्सचेंज सर्वर से संपर्क सूची कैसे प्राप्त करें?
- 4. जीमेल उपयोगकर्ता के संपर्क कैसे प्राप्त करें?
- 5. संपर्क समूह प्राप्त करें?
- 6. एंड्रॉइड संपर्क प्राप्त करना
- 7. संपर्कों तक पहुंचें और ईमेल पता प्राप्त करें
- 8. एंड्रॉइड संपर्क पिकर से संपर्क जानकारी प्राप्त करें
- 9. ईमेल संपर्क पिकर
- 10. एंड्रॉइड संपर्क सूची
- 11. संपर्क सूची से नाम और ईमेल प्राप्त करना बहुत धीमा है
- 12. संपर्क मोबाइल नंबर केवल
- 13. संपर्क प्रदर्शन समस्या प्राप्त करें
- 14. एंड्रॉइड संपर्क पिकिंग - संख्याओं के साथ केवल संपर्क?
- 15. एंड्रॉइड ऐप्स: संपर्क सूची से "मुझे" संपर्क पुनर्प्राप्त करना
- 16. एंड्रॉइड संपर्क सूची
- 17. जीमेल संपर्क कैसे प्राप्त करें?
- 18. सिंक सेवा संपर्क आईडी से पता पुस्तिका संपर्क आईडी प्राप्त करने का कोई तरीका है?
- 19. एंड्रॉइड - कॉल लॉग से संपर्क कैसे प्राप्त करें?
- 20. आईओएस: मालिकों का ईमेल पता कैसे प्राप्त करें?
- 21. एक संपर्क सूची प्रोग्राम बनाना
- 22. गैर-प्राथमिक खरीद खाता ईमेल पता कैसे प्राप्त करें
- 23. चयनित पाठ और मूल्य Android सूची पुनर्प्राप्ति कैसे प्राप्त करें
- 24. उपयोगकर्ता नाम से PowerShell और WMI के माध्यम से उपयोगकर्ता का ईमेल पता प्राप्त करें?
- 25. आईफोन संपर्क - कंपनी का नाम प्राप्त करें
- 26. ईमेल से डोमेन कैसे प्राप्त करें
- 27. Outlook 2007 में वर्तमान उपयोगकर्ता का ईमेल पता प्राप्त करें
- 28. ईमेल पता
- 29. संपर्क पिकर से संख्या प्राप्त करना
- 30. PHP के बिना ईमेल संपर्क फ़ॉर्म
अरे धन्यवाद बहुत –
मुझे ArrayList में संपर्क नाम और ईमेल पता मिल रहा है। मैंने लॉग बिल्ली में इस तरह देखा: नाम: [email protected], ईमेल: [email protected], नाम: [email protected], ईमेल: [email protected], नाम: xyz, ईमेल: xyz @ gmail। मतलब है कि मुझे संपर्क नाम में नाम और ईमेल पता का मिश्रण मिल रहा है :( –
इस वैकल्पिक कामकाजी उत्तर को आजमाएं –