2012-04-15 38 views
7

Tôi đang sử dụng API khả năng truy cập để phát hiện kết nối hiện tại của mình, nhưng tôi chỉ có thể phân biệt giữa WIFI và 3G.Có thể phát hiện kết nối LTE bằng iOS SDK không?

tôi nhận được những lá cờ sau:

LTE: kSCNetworkReachabilityFlagsIsLocalAddress|kSCNetworkReachabilityFlagsIsWWAN|kSCNetworkReachabilityFlagsTransientConnection|kSCNetworkReachabilityFlagsReachable

WIFI: kSCNetworkReachabilityFlagsIsDirect|kSCNetworkReachabilityFlagsReachable

Vấn đề là LTE trả sau sử dụng cùng một kết nối 3G. Có cách nào để xác định liệu người dùng hiện có LTE hay 3G không?

+0

Bạn có quan tâm đến băng thông cao hơn đi kèm với mạng hoặc chỉ loại mạng không? Có một cách giải quyết cho các cựu, nhưng không phải là sau này. – bendu

+0

Tôi đoán cách giải quyết là chỉ đơn giản là cố tải xuống thứ gì đó và theo dõi tốc độ? –

Trả lời

3

Tôi tự hỏi liệu API điện thoại lõi ẩn này có thể cung cấp cho bạn đủ thông tin để bạn xác định xem bạn có được kết nối với LTE hay công nghệ chậm hơn không.

CTRegistrationGetCurrentMaxAllowedDataRate(); 

Có thể đáng thử nghiệm.

Thông tin thêm về sử dụng API tin ở đây: iPhone mobile number using Core telephony

Tuy nhiên, tôi đã đọc mà ứng dụng của bạn sẽ bị từ chối bởi táo nếu bạn sử dụng các API riêng.

15

Kể từ iOS 7, bạn có thể tìm hiểu điều này bằng cách sử dụng thuộc tính currentRadioAccessTechnology của CTTelephonyNetworkInfo trong khung CoreTelephony.

#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

CTTelephonyNetworkInfo *networkInfo = [CTTelephonyNetworkInfo new]; 

if ([networkInfo.currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) { 
    // ... 
} 
+2

Có ai biết tại sao không có tài liệu về phương pháp 'currentRadioAccessTechnology'? https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CTTelephonyNetworkInfo/Reference/Reference.html – Robert

+0

Phương pháp này đã thêm iOS7.0 nhưng Chưa thêm tài liệu. kiểm tra tệp tiêu đề "CTTelephonyNetworkInfo.h" '' 'oc @property (nonatomic, readonly, retain) NSString * currentRadioAccessTechnology __OSX_AVAILABLE_STARTING (__ MAC_NA, __ IPHONE_7_0); '' ' – TopChul

+1

Điều này vẫn chưa được ghi lại chính thức khiến tôi lo lắng. Tôi đặt nó trong một thử bắt để tôi có thể có một số hành vi mặc định nếu nó bị lấy đi. –