मेरे पास फ़ोन नंबरों की एक श्रृंखला है और मैं संपर्क डेटाबेस से संबंधित संपर्क नाम प्राप्त करना चाहता हूं।मैन्युअल रूप से कर्सर में पंक्तियां जोड़ना
फ़ोन नंबरों की सरणी में, मेरे पास कुछ संख्याएं हैं जो संपर्क डेटाबेस से पहले सहेजी नहीं जाती हैं। उदाहरण के लिए;
- 3333333 -> टिम
- 5555555 -> जिम
- 1111111 -> अज्ञात
मैं सरणी फ़ोन नंबर वाला, ऊपर से पता चला है अर्थात् phoneArr।
int size=phoneArr.size();
if(size>0){
Cursor[] cursors=new Cursor[size];
for(int i=0;i<size;i++){
Uri contactUri1 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneArr.get(i)));
cursors[i] = getContentResolver().query(contactUri1, PEOPLE_PROJECTION, null, null, " _id asc limit 1");
}
Cursor phones=new MergeCursor(cursors);
फ़ोन.getCount() उपर्युक्त परिदृश्य में 2 लौटाता है। जब संपर्क सूची में फ़ोन नंबर प्रकट नहीं होता है तो कर्सर खाली हो जाता है और किसी भी तरह जब मैं उन्हें विलय करता हूं तो यह कुछ भी योगदान नहीं देता है। क्या मैं चाहता हूँ के रूप में
कर्सर फोन का पालन करने वाले कर्सर है -> {टिम, जिम, 1111111}
मुझे लगता है कि इस प्रकार मैं मैन्युअल रूप से पंक्ति जोड़ कर ऐसा कर सकते हैं:
Uri contactUri1 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneArr.get(i)));
cursors[i] = getContentResolver().query(contactUri1, PEOPLE_PROJECTION, null, null, " _id asc limit 1");
if(cursors[i].getCount()==0)
// add the phone number manually to the cursor
मैं इसे कैसे प्राप्त कर सकता हूं?
यहाँ PEOPLE_PROJECTION
private static final String[] PEOPLE_PROJECTION = new String[] {
ContactsContract.PhoneLookup._ID,
ContactsContract.PhoneLookup.DISPLAY_NAME,
ContactsContract.PhoneLookup.NUMBER
};
कृपया मेरे समाधान पर एक नज़र डालें, और अगर यह समस्या हल करता है तो इसके लिए वोट दें =) – elgui
कृपया आपके द्वारा स्वीकार किए गए उत्तर की समीक्षा करें, यह एंड्रॉइड एसडीके की वर्तमान उपलब्ध सुविधाओं के मुताबिक गलत लगता है। –
ठीक है, जब तक मैंने जवाब स्वीकार किया, यह उचित लग रहा था। जब मैं कुछ खाली समय लेता हूं तो मैं इसकी समीक्षा करूंगा। – 0x5f3759df