تحديد متى يأتي اتصال EDGE مرة أخرى بعد التسرب على اي فون

StackOverflow https://stackoverflow.com/questions/181485

سؤال

ولقد أدرجت عينة سائل الأتصال أبل في المشروع الخاص بي إذا كنت لا تعرف ما إذا كان لدي اتصال الشبكة - لو لم يكن لديك اتصال الشبكة، وأنا لا تهتم بإرسال والطلبات. قررت أن أذهب مع تنفيذ إخطار الوضع لأنه يبدو من الأسهل أن يكون reachablity تحديثها في الخلفية والحصول على النتائج الحالية تتوفر على الفور مقابل مستهل طلب متزامن كلما كنت تريد أن تجعل من الاتصال بالشبكة.

ومشكلتي هي أنني البدء في الحصول على السلبيات كاذبة عندما على شبكة EDGE - والهاتف لديه اتصال، ولكن التطبيق يعتقد هذا ليس هو الحال. ما أفهمه هو أنك لا تحصل على إشعار عند اتصال EDGE، حتى بلدي الافتراض هو أن فقدت واستعاد الاتصال في مرحلة ما. إعادة تشغيل التطبيق عادة ما تكون كافية لرؤية اتصال الشبكة.

وهذه ليست الحل الأمثل، لذلك كنت أتساءل إذا كان أي شخص آخر جاء عبر هذه المشكلة، وكان أي أفكار على الحلول.

و(أنا لا أعرف ما إذا كان هذا ينطبق على الجيل الثالث 3G، وكذلك؛ أنا على التوالي أول جنرال فون).

هل كانت مفيدة؟

المحلول

لا يبدو

وnotificataions وسائل الأتصال أن تكون موثوقة بالنسبة لي سواء، للكشف عن خدمة الواي فاي. لذلك أنا مجرد استخدام الاقتراع بدلا من ذلك. فحص كل 5 ثوان يبدو أن لا ضرر ولا ضرار.

- (void) checkReachability {
    BOOL connected = ([[Reachability sharedReachability] localWiFiConnectionStatus] == ReachableViaWiFiNetwork);

    // Do something...

    [self performSelector:@selector(checkReachability) withObject:nil afterDelay:5.0];
}

نصائح أخرى

وهناك مثال وسائل الأتصال لطيفة على شبكة الإنترنت. أنه يعمل بشكل رائع أيضا: http://servin.com/iphone/iPhone-Network-Status.html

ولكن كما ترون، عندما أحاول استخدامه بطريقتي الخاصة، والقنابل فقط.

وحاول تنفيذه باستخدام:

NSString *sCellNetwork;     
 NSString *sNetworkReachable;  

if (flags & kSCNetworkFlagsReachable || flags & kSCNetworkReachabilityFlagsIsWWAN)

{do it} 

 else {
   Network fail alert; 
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top