2010-12-03 3 views
18

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

चूंकि यह एक एंटरप्राइज़ ऐप है, इसलिए मैंने ऐप को समाप्त होने से बचने के लिए UIBackgroundModes "voip" का उपयोग किया। मैंने setKeepAliveTimeout विधि भी स्थापित की है और मैं प्रत्येक 10 मिनट में लॉग देखने में सक्षम हूं, लेकिन विधि चलाने के बाद केवल 10 सेकंड के लिए। मेरा मतलब है, setKeepAliveTimeout प्रत्येक ऐप को 10 सेकंड के लिए टाइमर चलाने के लिए मेरे ऐप लाता है।

मैं गीली सोच रहा हूं या पृष्ठभूमि में कोई काम मेरी समस्या का सबसे अच्छा समाधान नहीं है।

मैं किसी भी टिप्पणी की सराहना करता हूं।

संपादित करें: ठीक है दोस्तों। ऐसा करने का सही तरीका है।

सबसे पहले आप यह पढ़ चाहिए: http://www.christian-fries.de/blog/files/tag-ios.html

मैं इस कोशिश की और यह वास्तव में ठीक काम करता है। हमें केवल एक मुख्य थ्रेड से अलग दूसरा थ्रेड बनाने की आवश्यकता है। इस तरह हमारे पास हमेशा के लिए चल रहे निरंतर थ्रेडिंग होते हैं। आपको ऐप्पल की वेबसाइट पर भी जीसीडी डॉक्स देखना होगा।

एंटरप्राइज़ ऐप के लिए आपको दूसरी बात पर विचार करना चाहिए, इसे एक वीओआईपी ऐप के रूप में सेट करना है, इस प्रकार आईओएस रीबूट के बाद भी आपके ऐप को चलाएगा। यह एक विशेष व्यवहार है आईओएस को वीओआईपी ऐप्स चलाना है।

यह लोग है। मुझे उम्मीद है कि यह आपकी मदद कर सकता है।

+9

मैं वास्तव में कंपनियों के नाम जानना चाहता हूं, ताकि मैं वहां कभी भी काम करना शुरू नहीं कर सकता ... वैसे भी - तकनीकी बहुत रोचक: +1 – vikingosegundo

+0

आपके पास कोई विकल्प नहीं है, ब्लॉक के साथ पृष्ठभूमि कार्य करना है कोड निष्पादित करने के लिए 4.0+ के साथ केवल वैध तरीका। क्या आप सोच रहे थे कि आप आईओएस पर एक सेवा बना सकते हैं? AFAIK आप Jailbreaking – slf

+0

@vikingosegundo के बिना ऐसा नहीं कर सकते - शायद ऐप को बिल की शुद्धता को सत्यापित करने के लिए लिखा जा रहा है। लेकिन आप जो भी कह रहे हैं, उसके लिए, यदि आप किसी कंपनी के लिए काम करते हैं और अपने उपकरण का उपयोग करते हैं, तो आपको गोपनीयता की अपेक्षा क्यों करनी चाहिए? यदि आप कंपनियों के कंप्यूटर के साथ इंटरनेट ब्राउज़ करते हैं तो क्या आप इसकी अपेक्षा करते हैं? –

उत्तर

2

हमारे पास इस डेटा तक पहुंच नहीं है। यातायात को मापने का कोई तरीका नहीं है।

आपके द्वारा देखी गई ऐप ने अनुमान लगाया है (उदाहरण के लिए 1 एमबी/मिनट) और एप्लिकेशन के बाद एंटरटेनमेंट। तो आप समय एक्स अनुमानित यातायात calc और वहाँ हम जाते हैं।

दुर्भाग्य से को मापने का कोई तरीका नहीं है, इसलिए मैंने सेटिंग में यातायात-रीसेट किया और फिर मैंने बिल्कुल 1 मिनट संगीत स्ट्रीम किया। कुछ दोहराव के बाद मेरे परिणाम थे। समस्या यह है कि यह केवल ऑडियो या वीडियो जैसे स्थिर ट्रैफिक-प्रक्रियाओं के साथ ठीक काम करता है।

आशा मदद कर सकता है एंडो

संपादित करें: नीचे का जवाब हैं!

+1

मुझे यह कहने की अनुमति है कि आप गलत हैं। मापने का एक तरीका है और मैंने इसे किया! आप प्रत्येक नेटवर्क इंटरफेस (लो, एन 0, पीडीपी_आईपी 0, आदि ...) की जांच करने में सक्षम हैं। प्रणाली एक संरचना के अंदर उस इंटरफेस के बारे में सारी जानकारी रखती है और हम यह देखने के लिए जांच सकते हैं कि इस संरचना के अंदर हमारे पास क्या मूल्य हैं। Google "getifaddrs" और "struct ifaddrs" के लिए Google। आप निश्चित रूप से इसके बारे में जानकारी प्राप्त करेंगे। मैंने यह किया और यह ठीक काम कर रहा है। महत्वपूर्ण: पृष्ठभूमि समाधान केवल उदाहरण के लिए प्रत्येक 1 मिनट में इंटरफेस की निगरानी रखने के लिए है। – Trinca

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

  • कोई संबंधित समस्या नहीं^_^