2010-04-29 8 views
5

मैं एक वीओआईपी आवेदन करने की कोशिश कर रहा हूँ और मुझे पता है कि अगर यह कॉल लॉग्स सामग्री प्रदाता के साथ निम्न करने के लिए संभव है चाहता था -कॉल लॉग (कॉल इतिहास) डेटाबेस में नए फ़ील्ड और रिकॉर्ड कैसे जोड़ें?

  1. मैं साथ वीओआईपी कॉल के लिए नए कॉल लॉग रिकॉर्ड जोड़ना चाहते हैं नियमित कॉल के लिए कॉल लॉग के साथ। मौजूदा कॉल लॉग सामग्री प्रदाता में मैं नए रिकॉर्ड कैसे जोड़ सकता हूं?

  2. मैं एक कॉल आईडी और एसआईपी पता (नाम @ डोमेन) फ़ील्ड जैसे कॉल लॉग में कस्टम फ़ील्ड जोड़ना चाहता हूं। मैं कॉल लॉग डेटाबेस को कैसे अनुकूलित कर सकता हूं?

अगर कोई मुझे उदाहरण दे सकता है तो यह बहुत अच्छा होगा।

उत्तर

5

मानक एसडीके एप्लिकेशन से, आप CallLog डेटाबेस या सामग्री प्रदाता को सीधे विस्तार या संशोधित नहीं कर सकते हैं। एक एसडीके आधारित वीओआईपी आवेदन के लिए, आपको अपना कॉल लॉग बनाए रखना चाहिए।

यदि आप अपने डिवाइस के लिए अपना स्वयं का फ़र्मवेयर लिख रहे हैं, तो मुझे यकीन है कि आप कॉल लॉग डेटाबेस को संशोधित करने के तरीके हैं।

+0

यदि आप जो कहते हैं वह सत्य है, तो रॉबर्टो के उत्तर से आपकी प्रतिक्रिया क्या है? क्या कोई कारण है कि इसे काम नहीं करना चाहिए या इस्तेमाल नहीं किया जाना चाहिए? –

+0

@Eric: वह उत्तर लॉग में कॉल जोड़ने के लिए है। मैं बुलेट # 2 को संबोधित कर रहा था; रॉबर्टो ने बुलेट # 1 को संबोधित किया। किसी भी भ्रम के लिए मेरी माफ़ी। – CommonsWare

8

पहला सवाल के बारे में, आप मौजूदा कॉल लॉग सामग्री प्रदाता को नए रिकॉर्ड जोड़ने के लिए इस कोड का उपयोग कर सकते हैं:

public static void insertPlaceholderCall(ContentResolver contentResolver, String number){ 
    ContentValues values = new ContentValues(); 
    values.put(CallLog.Calls.NUMBER, number); 
    values.put(CallLog.Calls.DATE, System.currentTimeMillis()); 
    values.put(CallLog.Calls.DURATION, 0); 
    values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE); 
    values.put(CallLog.Calls.NEW, 1); 
    values.put(CallLog.Calls.CACHED_NAME, ""); 
    values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0); 
    values.put(CallLog.Calls.CACHED_NUMBER_LABEL, ""); 
    Log.d(TAG, "Inserting call log placeholder for " + number); 
    contentResolver.insert(CallLog.Calls.CONTENT_URI, values); 
} 

(कोड Google Voice Callback for Android से लिया गया)

में अनुमतियां जोड़ने के लिए याद रखें मैनिफेस्ट

<uses-permission 
    android:name="android.permission.READ_CONTACTS"></uses-permission> 
<uses-permission 
    android:name="android.permission.WRITE_CONTACTS"></uses-permission> 

कॉल लॉग डेटाबेस के अनुकूलन के संबंध में, मुझे नहीं लगता कि यह संभव है।

संबंधित मुद्दे