2011-06-14 78 views
0

我只是想以編程方式知道iPhone是否處於飛行模式。我知道我們必須在info plist中添加SBUsesNetwork布爾標誌,但這不符合我的目的。其實我正在使用reachabillity類來識別互聯網的可用性,所以當我的應用程序以飛行模式啓動時,從我的代碼和其他SBUsesNetwork標誌中得到兩個警告。我急於顯示這兩個警報中的任何一個。所以我想以編程方式知道手機是否處於飛行模式?如何識別手機是否處於飛行模式 - 以編程方式?

任何想法或建議將有很大的幫助?

在此先感謝!

+1

的可能重複[iphone如何檢查飛行模式?(http://stackoverflow.com/questions/1404651/iphone-how-to-check-the-airplane-mode)的 – PengOne 2011-06-14 06:17:25

+0

可能重複[iPhone:檢測飛行模式](http://stackoverflow.com/questions/4804398/iphone-detect-airplane-mode) – grc 2013-03-29 04:38:22

回答

0
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary]; 
[infoDict objectForKey:@"SBUsesNetwork"]; 

希望這有助於。

0

如果不使用私有庫,我們無法獲取此信息。這裏有一些代碼,但當載波信號不可用時它不起作用。

UIApplication *app = [UIApplication sharedApplication]; 
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews]; 

NSString *dataNetworkItemView = nil; 

for (id subview in subviews) { 
    if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]]) { 
      dataNetworkItemView = subview; 
      break; 
    } 
} 

double signalStrength = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] intValue]; 
if (signalStrength > 0) { 
     NSLog(@"Airplane mode or NO signal"); 
    } 
    else{ 
     NSLog(@"signal available"); 
    } 
相關問題