2011-11-03 6 views
5

मुझे संबंधित बटनों के क्लिक पर हालिया कॉल सूची और पसंदीदा कॉल सूची को कॉल करने की आवश्यकता है और मुझे अपनी सूची लेआउट में डेटा की आवश्यकता है। मैं एंड्रॉइड के लिए नया हूं और इस के साथ बहुत सी परेशानी है। कृपया किसी को भी मेरी मदद करें .. धन्यवाद अग्रिम में ..एंड्रॉइड में हालिया कॉल सूची और पसंदीदा सूची को कैसे पुनर्प्राप्त करें?

उत्तर

5

हालिया कॉल सूची प्राप्त करने के लिए, आप एंड्रॉइड में कॉललॉग का उपयोग कर सकते हैं। Here एक अच्छा ट्यूटोरियल है। This भी सहायक है।

आप इस तरह सभी आउटगोइंग कॉल के लिए उपयोग कर सकते हैं:

Cursor cursor = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,null, android.provider.CallLog.Calls.TYPE+"="+android.provider.CallLog.Calls.OUTGOING_TYPE, null,null); 

कॉल के सभी प्रकार के लिए, यह उपयोग की तरह:

Cursor cursor = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,null, null, null,null); 
+0

हैलो हीरल, मैं एक ही क्वेरी का उपयोग कर रहा कॉल लॉग के सभी प्रकार प्राप्त करने के लिए, लेकिन मैं एक छोटी सी समस्या हो रहा है जब यह दोहरी सिम डिवाइस के लिए आता है। मेरा कोड दोहरी सिम उपकरणों के लिए उचित काम नहीं कर रहा है। क्या आप कृपया उसमें मेरी मदद कर सकते हैं। – Scorpion

6

कुछ अतिरिक्त, उपयोगी कोड के साथ:

getFavoriteContacts:

Map getFavoriteContacts(){ 
Map contactMap = new HashMap(); 

Uri queryUri = ContactsContract.Contacts.CONTENT_URI; 

String[] projection = new String[] { 
     ContactsContract.Contacts._ID, 
     ContactsContract.Contacts.DISPLAY_NAME, 
     ContactsContract.Contacts.STARRED}; 

String selection =ContactsContract.Contacts.STARRED + "='1'"; 

Cursor cursor = getContentResolver().query(queryUri, projection, selection,null,null); 


while (cursor.moveToNext()) { 
    String contactID = cursor.getString(cursor 
      .getColumnIndex(ContactsContract.Contacts._ID)); 

    Intent intent = new Intent(Intent.ACTION_VIEW); 
    Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactID)); 
    intent.setData(uri); 
    String intentUriString = intent.toUri(0); 

    String title = (cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); 

    contactMap.put(title,intentUriString); 

} 
cursor.close(); 
return contactMap; 
} 

getRecentContacts:

Map getRecentContacts(){ 
Map contactMap = new HashMap(); 

Uri queryUri = android.provider.CallLog.Calls.CONTENT_URI; 

String[] projection = new String[] { 
     ContactsContract.Contacts._ID, 
     CallLog.Calls._ID, 
     CallLog.Calls.NUMBER, 
     CallLog.Calls.CACHED_NAME, 
     CallLog.Calls.DATE}; 

String sortOrder = String.format("%s limit 500 ", CallLog.Calls.DATE + " DESC"); 


Cursor cursor = getContentResolver().query(queryUri, projection, null,null,sortOrder); 


while (cursor.moveToNext()) { 
    String phoneNumber = cursor.getString(cursor 
      .getColumnIndex(CallLog.Calls.NUMBER)); 

    String title = (cursor.getString(cursor.getColumnIndex(CallLog.Calls.CACHED_NAME))); 

    if(phoneNumber==null||title==null)continue; 

    String uri = "tel:" + phoneNumber ; 
    Intent intent = new Intent(Intent.ACTION_CALL); 
    intent.setData(Uri.parse(uri)); 
    String intentUriString = intent.toUri(0); 

    contactMap.put(title,intentUriString); 

} 
cursor.close(); 
return contactMap; 
} 
संबंधित मुद्दे