2009-08-13 53 views
7

Có cách nào để có được sóng mang của iPhone và/hoặc cường độ tín hiệu hiện tại, sử dụng Objective-C không? Tôi biết làm thế nào để xác định nếu một kết nối dữ liệu có mặt, và có hay không kết nối đó là wi-fi so với di động. Tôi cũng biết rằng bạn có thể tự đặt iPhone vào chế độ "kiểm tra trường" bằng cách đi tới ứng dụng điện thoại và quay số # 3001 * 12345 * # và nhấn Gửi.Lập trình nhận cường độ tín hiệu sóng mang của điện thoại di động

+0

Bạn đã bao giờ tìm thấy câu trả lời cho câu hỏi này? – Hauke

Trả lời

3

Bạn đã làm tôi tò mò và tôi phát hiện ra rằng nó thực sự là *3001#12345#* (dấu và sao trao đổi).

2

Điều này có thể sẽ không vượt qua đánh giá của Apple, nhưng bạn có thể sử dụng thông báo CTTelephony. Đầu tiên, liên kết với CTTelephony. Bây giờ chỉ cần sử dụng này:

static void callback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) { 

    CFShow(name) 

    NSString *sName = name; 
    if ([sName isEqualToString:@"kCTIndicatorsSignalStrengthNotification"]) { 
     if (userInfo) CFShow(userInfo); 
    }  
} 

Và đây để đăng ký:

 
id ct = CTTelephonyCenterGetDefault(); 

    CTTelephonyCenterAddObserver(
           ct, 
           NULL, 
           callback, 
           NULL, 
           NULL, 
           NULL); 
+0

Tại sao nó sẽ không vượt qua đánh giá? –

+1

Mặc dù CoreTelephony là một API công khai kể từ iOS 4.0, CTTelephonyCenterGetDefault() và CTTelephonyCenterAddObserver() là các phương thức riêng tư. Nó có thể vượt qua đánh giá, tùy thuộc vào người đánh giá, nhưng nó không nên. – fbernardo

+0

Tôi chỉ cố gắng này và nó đã cho tôi tin nhắn về các sự kiện UI (UIViewAnimationDidStopNotification, ví dụ) nhưng không có gì Telephony-ish. Bất cứ ý tưởng những gì có thể là sai? – brianestey

Các vấn đề liên quan