2012-05-17 14 views
7

हम एक आईफोन ऐप लिखने की प्रक्रिया में हैं (जो पृष्ठभूमि में होगा) जो आने वाली फोन कॉल आने पर अधिसूचित किया जाएगा। ऐप कुछ पृष्ठभूमि काम करता है - फोन सत्र चालू होने पर कुछ डेटा पुनर्प्राप्त करने वाले सर्वर पर जा रहा है और फिर उपयोगकर्ता को सूचित करता है।फ़ोन कॉल प्राप्त होने पर स्क्रीन अपडेट करने के लिए आईफोन पृष्ठभूमि ऐप

खोज के बाद, मैंने पाया कि मैं वास्तव में यह जानने के लिए Private Telephony Headers/Framework का उपयोग कर सकता हूं कि मेरे ऐप में कौन कॉल कर रहा है। हालांकि, मैं सर्वर से पुनर्प्राप्त जानकारी के साथ डायलर स्क्रीन को अपडेट करने में असमर्थ हूं। साथ ही मैंने पाया कि फ़ोन कॉल आने पर एप्लिकेशन को चलाना होगा। याक !!

मुझे पता है कि यह सेब की दुकान में अनुमोदित नहीं होगी, हालांकि मैं 2 बातें रहा हूँ:

  1. मैं कैसे पृष्ठभूमि में इस एप्लिकेशन को डाल दिया है।
  2. कॉल चालू होने पर मैं कुछ जानकारी कैसे दिखा सकता हूं। स्थानीय अधिसूचना ठीक है लेकिन इसे तुरंत दिखाना है।

भले ही हमें भागने की ज़रूरत है, मैं यह जानना चाहता हूं कि यह कैसे किया जाए। यह ऐप कानून प्रवर्तन अधिकारियों के लिए है - अवधारणा का सबूत।

+1

यदि आप इस तरह के ऐप को उचित तरीके से बनाना चाहते हैं तो आपको जेलबैक करने की आवश्यकता होगी, क्योंकि मुझे लगता है कि सबसे अच्छा समाधान भारी उठाने वाला पृष्ठभूमि डिमन होगा और फिर जानकारी प्रदर्शित करने के लिए स्प्रिंगबोर्ड में कोड इंजेक्शन होगा। इस तरह की चीजों को कैसे करें, इस पर कोई वास्तविक ट्यूटोरियल नहीं है, हालांकि, जेलबैक दृश्य में मौजूद डेवलपर्स के पास इन मामलों के बारे में अनुभव है और कभी-कभी वे फ्रीलांस काम करते हैं। – YllierDev

+0

मैं मूल रूप से वसंत बोर्ड में कोड इंजेक्शन की तलाश कर रहा हूं ताकि कानून प्रवर्तन अधिकारियों के लिए संवेदनशील जानकारी तुरंत दिखायी जा सके और कॉल होने पर उन्हें बेहतर जानकारी दी जा सके। यदि ऐप्पल कहता है कि यह उपयोगकर्ता अनुभव या गोपनीयता/सुरक्षा के लिए ऐसे परिवर्तनों को रोकता है, तो मैं कहूंगा कि उन्होंने इसे बेहतर तरीके से डिजाइन नहीं किया है और डर गए हैं .. और केवल इन बहसों के पीछे छिपा रहे हैं। –

+0

यदि आप इसे स्वयं करना चाहते हैं, तो मोबाइल सब्सट्रेट (http://iphonedevwiki.net/index.php/MobileSubstrate) जेलब्रोकन डिवाइस पर कोड इंजेक्शन के लिए उपयोग करने का टूल है। मैं समझता हूं कि एप्पल डेवलपर्स को व्यापक प्रणाली खोलने को तैयार नहीं है। अनुभवहीन डेवलपर्स द्वारा "ट्वीक्स" गंभीर विनाश का कारण बन सकता है और आईफोन कम रखरखाव वाले बड़े पैमाने पर उत्पाद के रूप में है। हालांकि, इसने मुझे सिस्टम को टंकण और सुधारने से नहीं रोका है;) – YllierDev

उत्तर

3

जैसा कि येलियरडेव ने कहा था, आप जानकारी प्रदर्शित करने के लिए मोबाइल सब्सट्रेट ट्वीक में देख सकते हैं। लेकिन, कुछ के लिए है कि शायद थोड़ा कम किसी नए के लिए चुनौतीपूर्ण, तो आप इस कोशिश कर सकते:

  1. सबसे पहले, एक लांच डेमॉन पैदा करते हैं। यह पृष्ठभूमि में चलाया जा सकता है और जो भी आपको पसंद है। फ़ोन बूट होने पर यह शुरू हो जाएगा, इसलिए उपयोगकर्ता को पहले कुछ ऐप चलाने की आवश्यकता नहीं है, और फिर उसे पृष्ठभूमि में डाल दें। मुझे this to be a good example of building a LaunchDaemon

  2. ऐसा लगता है कि आप पहले से ही जानते हैं कि कोर टेलीफोनी फ्रेमवर्क की अनियंत्रित विशेषताओं का उपयोग कैसे करें ताकि एक नई कॉल अधिसूचित हो सके। यह आपके डेमन की ज़िम्मेदारी होगी। पूर्णता के लिए, see this answer, या this other answer डार्विन अधिसूचनाओं के साथ कॉलम के लिए कॉल कैसे सुन सकता है।

  3. जब कॉल को अवरुद्ध किया जाता है, तो आपका डिमन आपके सर्वर से संपर्क कर सकता है।

  4. उसके बाद, आप something like this के साथ एक सरल पॉपअप बना सकते हैं:

CFOptionFlags responseFlags = 0; 
CFUserNotificationDisplayAlert(20.0, 3, NULL, NULL, NULL, 
    CFSTR("Hello"), CFSTR("Hello World"), CFSTR("OK"), 
    NULL, NULL, &responseFlags); 

यहाँ कुछ Apple docs on CFUserNotifications

है आप शायद CoreFoundation ढांचे के साथ लिंक करने होंगे, और शायद include this headerCFUserNotificationDisplayAlert() के लिए उपलब्ध होने के लिए, अपनी परियोजना में।

लेकिन, आपको अपने डायनामिक कॉल डेटा के साथ पॉपअप देना चाहिए।

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