निर्धारित करना मुझे पता है कि पहुंच योग्यता उदाहरण वाईफ़ाई या सेल के माध्यम से नेटवर्क पहुंच योग्य है या नहीं, लेकिन यह निर्धारित करने का कोई तरीका है कि सेल कनेक्शन 3 जी या EDGE से अधिक है या नहीं?3 जी बनाम एज
उत्तर
नहीं, सेल कनेक्टिविटी के भीतर नेटवर्क तकनीक का सार्वजनिक पता लगाने जैसी कोई चीज़ नहीं है।
निजी एपीआई का उपयोग करके, आप सीधे स्टेटस बार में यह जानकारी पढ़ सकते हैं।
https://github.com/nst/MobileSignal/blob/master/Classes/UIApplication+MS.m
+ (NSNumber *)dataNetworkTypeFromStatusBar {
UIApplication *app = [UIApplication sharedApplication];
UIStatusBar *statusBar = [app valueForKey:@"statusBar"];
UIStatusBarForegroundView *foregroundView = [statusBar valueForKey:@"foregroundView"];
NSArray *subviews = [foregroundView subviews];
UIStatusBarDataNetworkItemView *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
return [dataNetworkItemView valueForKey:@"dataNetworkType"];
}
आप शायद इसे '@ [email protected] catch' ब्लॉक में लपेटना चाहते हैं, ऐसा लगता है कि यह भविष्य के आईओएस संस्करण में बदल सकता है। +1 हालांकि, बहुत अच्छा! – hypercrypt
क्या यह सेब द्वारा स्वीकार किया जाता है? ऐप स्टोर में प्रकाशित करने के लिए ...? –
समाधान निजी एपीआई पर निर्भर करता है और यह एक नाजुक तर्क भी है जो किसी भी बिंदु पर टूट सकता है। – DevGansta
मामूली सरलीकृत NST के कोड के संस्करण संकलक चेतावनी मैं XCode 4.5 में मिला मौन करने:
- (NSNumber *) dataNetworkTypeFromStatusBar {
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
NSNumber *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
return [dataNetworkItemView valueForKey:@"dataNetworkType"];
}
और मान कुंजियों मैं अब तक मिल गया है:
- 0 = कोई वाईफ़ाई या सेलुलर
- 1 = 2 जी और इससे पहले? (पुष्टि नहीं)
- 2 = 3 जी? (पुष्टि अभी तक नहीं)
- 3 = 4 जी
- 4 = एलटीई
- 5 = वाईफ़ाई
भयानक धन्यवाद बहुत –
ऐप पृष्ठभूमि में होने पर स्थिति कैसे प्राप्त कर सकता है –
क्या यह निजी एपीआई है? यदि हां, तोब को खारिज कर दिया जाएगा? कोई उपाय? –
iOS 7 के रूप में, अब ऐसा करने के लिए एक सार्वजनिक तरीका है:
CTTelephonyNetworkInfo *telephonyInfo = [CTTelephonyNetworkInfo new];
NSLog(@"Current Radio Access Technology: %@", telephonyInfo.currentRadioAccessTechnology);
[NSNotificationCenter.defaultCenter addObserverForName:CTRadioAccessTechnologyDidChangeNotification
object:nil
queue:nil
usingBlock:^(NSNotification *note)
{
NSLog(@"New Radio Access Technology: %@", telephonyInfo.currentRadioAccessTechnology);
}];
क्या इस समाधान के लिए वाईफाई विकल्प को शामिल करने का कोई आसान तरीका है? – Michal
ओह अब मैं देखता हूं - फ्रेमवर्क द्वारा वाईफाई = एचएसपीडीए। – Michal
समस्या यह है कि कभी-कभी आरएटी बदल गया है और नोटिफिकेशन शून्य देता है ... – davidOhara
टेलीफ़ोनीइन्फोर्नेंटरैडियोएपटेक्नोलॉजी मानों पर अधिक पढ़ें और पढ़ें:
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyGPRS __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyEdge __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyWCDMA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyHSDPA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyHSUPA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMA1x __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORev0 __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORevA __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyCDMAEVDORevB __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyeHRPD __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_EXTERN NSString * const CTRadioAccessTechnologyLTE __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
मुझे लगता है कि ये सभी संभावित मूल्य हैं।
- 1. 3 जी/एज/जीपीआरएस आईपी पते और जियोकोडिंग
- 2. 2 जी/3 जी
- 3. जी: बनाम जी शामिल करें:
- 4. 2 जी या 3 जी डेटा एपीआई
- 5. पुराने आईफोन 3 जी
- 6. क्या डी 3 एज लेबलिंग संभव है?
- 7. लेवल बनाम एज ट्रिगर नेटवर्क इवेंट मैकेनिज्म
- 8. आईओएस 3 जी या वाईफाई
- 9. आईफोन ऐप केवल 3 जी
- 10. NSURLConnection आईओएस 3 जी अंक
- 11. यूडीपी छेद पंचिंग 3 जी
- 12. टॉपलिंक 11 जी बनाम EclipseLink
- 13. लैम्ब्डा अभिव्यक्ति (MSVC++ बनाम जी ++)
- 14. iPhone सक्रिय नेटवर्क प्रकार (2 जी, 3 जी, वाई-फाई)
- 15. मै मैक पर धीमी इंटरनेट कनेक्शन (एज/3 जी) का अनुकरण कैसे करूं। क्या फ़ायरफ़ॉक्स प्लगइन है?
- 16. एंड्रॉइड आंकड़े 3 जी यातायात, कैसे?
- 17. एंड्रॉइड पर एचटीपी क्लाइंट: यूएमटीएस/3 जी
- 18. का पता लगाने iPhone 3G या 3GS (और आइपॉड टच 2 जी आइपॉड टच 3 जी बनाम) जावास्क्रिप्ट
- 19. जी ++
- 20. कैनी एज एल्गोरिदम
- 21. कैनी एज एल्गोरिदम
- 22. विकर्ण वेज आकार का सीएसएस - ब्राउज़र में केंद्रित एज एज एज
- 23. सीएसएस का उपयोग कर सॉफ्ट एज?
- 24. एज साइड सिम्फनी 2
- 25. एज डिटेक्शन और पारदर्शिता
- 26. एज डिटेक्शन तकनीक
- 27. सीमा रहित फॉर्म एज
- 28. ग्राफविज़ एज लेबल
- 29. रूबी और& = एज केस
- 30. जी ++
क्या हमारे निजी एपीआई को लागू करने के लिए कोई संदर्भ है जो नेटवर्क विशेषताओं की गणना करता है जैसे कनेक्टेड नेटवर्क की विलंबता और बैंडविड्थ। – iPhonedev