60

電話が機内モードかどうかを確認するにはどうすればよいですか? (インターネット接続がないことを検出するだけでは十分ではありません。これら 2 つのケースを区別できなければなりません)

4

5 に答える 5

19

SCNetworkReachabilityGetFlags(SystemConfiguration フレームワーク)を使用してみてください。返された flags 変数が 0 で、戻り値が YES の場合、機内モードがオンになります。

Apple の到達可能性クラスを確認してください。

于 2011-01-26T12:21:36.560 に答える
5

Info.plist で true に設定された SBUsesNetwork ブール値フラグを追加して、機内モードのときにメールで使用されるポップアップを表示できます。

于 2011-01-26T23:26:42.863 に答える
1

この情報は、プライベート ライブラリを使用しないと取得できません。ここにいくつかのコードがありますが、キャリア信号が利用できない場合は機能しません。

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");
  }
于 2016-11-29T11:21:01.773 に答える