2008-12-04 11 views
5

के साथ आईफोन के कॉल लॉग तक पहुंचने के लिए मैं ऐसे एप्लिकेशन का निर्माण कर रहा हूं जिसके लिए आईफोन के कॉल लॉग से कुछ डेटा चाहिए (केवल पढ़ने के लिए)। कॉल लॉग एक स्क्लाइट डीबी है जो "/User/Library/CallHistory/call_history.db" पर स्थित है। मैंने लॉग निकालने के लिए जेलब्रोकन डिवाइस का इस्तेमाल किया। हालांकि sqlite_open3() कमांड का उपयोग करके इस स्थान को खोलने का प्रयास कर रहा है, मुझे SQLITE_ERROR त्रुटि मिलती है, जो लाइब्रेरी दस्तावेज़ीकरण के अनुसार "SQL त्रुटि या अनुपलब्ध डेटाबेस" का अर्थ है। त्रुटि को डीबग करने के प्रयास में मैंने फ़ोल्डर ('/ उपयोगकर्ता/पुस्तकालय /') की गणना करने के लिए NSFileManager का उपयोग किया है। ऐसा प्रतीत होता है जैसे यह परिणाम के "फ़िल्टर किए गए" सेट को वापस कर रहा है, जो कि कई अन्य फ़ोल्डरों के साथ 'CallHistory' फ़ोल्डर को बाहर कर देता है।आईफोन एसडीके

फ़ाइल सिस्टम परंपरा ओएस एक्स फ़ाइल संरचना के भ्रम को देने के लिए उपनाम की एक श्रृंखला का उपयोग करता है, और मुझे नहीं पता कि ये मेरे परिणामों पर असर डाल रहे हैं या नहीं।

कॉल लॉग केवल डिवाइस पर मौजूद है, और सिम्युलेटर नहीं है। मैं इसे 1 जीन आईफोन चलने वाले फायरवेयर 2.1 पर काम करने में असमर्थ रहा हूं।

यह कुछ कोड मैं उत्पादन

NSDirectoryEnumerator *dirnum = [[NSFileManager defaultManager] enumeratorAtPath: @"/private/var/mobile/Library/"]; 

while(bar = [dirnum nextObject]) 
{ 
    //Uncomment if you don't want to log sub folders 
    //[dirnum skipDescendents]; 

    NSLog(bar); 
} 

मैं एक संदेह है कि एप्पल ने अपने सैंडबॉक्सिंग रणनीति के हिस्से के रूप में निर्देशिका तक पहुंच रोक रही है परीक्षण करने के लिए इस्तेमाल किया है, लेकिन मैं इस स्तर पर कोई प्रमाण नहीं है। हालांकि, मैं बिना किसी समस्या के एड्रेस बुक तक पहुंच सकता हूं, इसलिए मैं थोड़ा उलझन में हूं।

धन्यवाद

उत्तर

14

कोको टच या अन्य आईफोन एपीआई से कॉल लॉग तक कोई पहुंच नहीं है।

+4

जब तक आप भागने नहीं देते। –

+0

यह ऐप कैसे काम कर रहा है? क्या आप इसके बारे में कुछ भी जानते हैं - http://itunes.apple.com/us/app/callog/id327883585?mt=8 – Saurabh

+0

मैं सोच रहा हूं कि कैलॉग यह कैसे करता है – Zebs

-1

सच में, आप कैसे कल्पना कर सकते हैं कि वे आप पूरे कॉल लॉग को एक्सेस करने दे चाहते हैं? एक बार जब आप इसे प्राप्त कर लेते हैं और इस जानकारी का अच्छा उपयोग करते हैं तो आप इंटरनेट पर इसे कैसे प्रेषित करते हैं?

+1

हाँ, यह सबसे सुरक्षित बात नहीं है, लेकिन मुझे विश्वास है कि आप पता पुस्तिका तक पहुंच सकते हैं, इसलिए ऐसा नहीं है कि यह विश्वास से परे है। – Jonathan

+1

यह है (कई कारणों में से एक) वे ऐपस्टोर के बारे में इतने सीमित क्यों हैं। आप सिद्धांत रूप में एक ऐप लिख सकते हैं जो आपकी एड्रेसबुक या कॉल सूची को नेट पर भेजता है, लेकिन वे (उम्मीद है कि) उस ऐप को स्टोर में आने से रोकें –

+4

मूर्ख मत बनो। आपके कंप्यूटर पर बहुत सारे कार्यक्रम हैं जो भगवान को संपर्क जानकारी, ईमेल और अन्य सामान भेजने में पूरी तरह से सक्षम होंगे, जहां आप इसके बारे में जानते हैं। और अब यह एक फोन पर है अचानक यह एक समस्या है? – Rolf

3

ध्यान रखें कि मैंने इनमें से कोई भी प्रयास नहीं किया है।

आपका तर्क ऐसा प्रतीत होता है कि यदि आप पता पुस्तिका डीबी तक पहुंच सकते हैं, तो कॉल लॉग डीबी क्यों नहीं? खैर, पता पुस्तिका प्रकाशित एपीआई के माध्यम से उजागर है - कॉल लॉग नहीं है। नतीजतन, मुझे नहीं लगता कि यह इतना अजीब है कि आप इसकी डीबी फाइल तक नहीं पहुंच सकते हैं।

2

एप्लिकेशन अपने सैंडबॉक्स से कुछ भी एक्सेस करने के लिए नहीं हैं। पता पुस्तिका डेटाबेस सुलभ है क्योंकि इसे सार्वजनिक ढांचे द्वारा उपयोग किया जाता है। फर्मवेयर 2.1 से पहले, अनुप्रयोगों को उनके सैंडबॉक्स से केवल पढ़ने के लिए उपयोग किया गया था।

3

आप एसडीके और अनुमोदित एपीआई का उपयोग कर कॉल लॉग तक नहीं पहुंच सकते हैं। यह डिजाइन द्वारा है।

0

कॉन्फ़िगरेशन उपयोगिता और स्कड के साथ आप कॉल करते समय निगरानी कर सकते हैं, लेकिन यह नहीं देख सकता कि, मैं एक ही समस्या को दूर करने की कोशिश कर रहा हूं, प्रगति कर रहा हूं लेकिन सेब ने निश्चित रूप से इसे अपनी निजी जानकारी बना दी है, कम से कम आपकी कॉलिंग ,

2

मैं शर्त लगाता हूं कि फोन व्यू मैक पर आईफोन बैकअप फ़ोल्डर से डेटा निकालता है .. एसक्लाइट डेटाबेस अनुमानित नामों के साथ संग्रहीत किए जाते हैं।