मैं प्रदर्शन नाम से संपर्क ढूंढने की कोशिश कर रहा हूं। लक्ष्य इस संपर्क को खोलना है और इसमें अधिक डेटा जोड़ना है (विशेष रूप से अधिक फोन नंबर), लेकिन मैं जिस संपर्क को अपडेट करना चाहता हूं उसे ढूंढने के लिए भी संघर्ष कर रहा हूं।एंड्रॉइड - प्रदर्शन नाम से संपर्क खोजें
इस कोड मैं का उपयोग कर रहा है:
public static String findContact(Context context) {
ContentResolver contentResolver = context.getContentResolver();
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_FILTER_URI;
String[] projection = new String[] { PhoneLookup._ID };
String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " = ?";
String[] selectionArguments = { "John Johnson" };
Cursor cursor = contentResolver.query(uri, projection, selection, selectionArguments, null);
if (cursor != null) {
while (cursor.moveToNext()) {
return cursor.getString(0);
}
}
return "John Johnson not found";
}
मैं एक संपर्क "जॉन जॉनसन" कहा जाता है, लेकिन विधि हमेशा रिटर्न "नहीं मिला"। मैंने केवल एक ही नाम से संपर्क खोजने की कोशिश की, जिससे कोई फर्क नहीं पड़ता।
मुझे संदेह है कि यह यूरी, चयन या चयन तर्कों में कुछ गड़बड़ है, क्योंकि मुझे किसी दिए गए डिस्प्ले नाम के साथ संपर्कों की खोज करने के लिए ऑनलाइन कोई उदाहरण नहीं मिला, और ऐसा लगता है कि डिस्प्ले नाम एक विशेष प्रकार की जानकारी है, उदाहरण के लिए एक फोन नंबर से अलग।
जॉन जॉनसन को खोजने के लिए मैं कोई विचार कैसे प्राप्त कर सकता हूं?
अद्यतन: मुझे पता चला कैसे प्रदर्शन नाम से एक संपर्क को खोजने के लिए:
ContentResolver contentResolver = context.getContentResolver();
Uri uri = Data.CONTENT_URI;
String[] projection = new String[] { PhoneLookup._ID };
String selection = StructuredName.DISPLAY_NAME + " = ?";
String[] selectionArguments = { "John Johnson" };
Cursor cursor = contentResolver.query(uri, projection, selection, selectionArguments, null);
if (cursor != null) {
while (cursor.moveToNext()) {
return cursor.getString(0);
}
}
return "John Johnson not found";
इस कोड को प्रदर्शन नाम "जॉन जॉनसन" से पहले संपर्क के संपर्क आईडी देता है। मेरे मूल कोड में मेरे पास गलत क्वेरी और मेरी क्वेरी में गलत चयन था।
जवाब देने के लिए धन्यवाद, लेकिन यह शून्य प्रक्षेपण के लिए मदद नहीं की। जब मैं फ़ोन नंबर खोज रहा हूं, वही कोड काम करता है, इसलिए यदि मैं किसी अन्य कॉलम में एक मैच खोज रहा हूं, तो भी फोन लुकअप._आईडी प्रक्षेपण के रूप में संभव है। यदि मैं इसे सही ढंग से समझ गया हूं, प्रक्षेपण वह डेटा है जिसे आप क्वेरी से वापस प्राप्त करना चाहते हैं, न कि आप जो खोज रहे हैं। इसलिए यदि आप शून्य पर प्रक्षेपण सेट करते हैं, तो आप बस अपनी क्वेरी से मिलने वाले मिलान करने वाले संपर्कों से सभी डेटा प्राप्त करने के लिए कह रहे हैं। –