iPhoneが機内モードになっているかどうかをプログラムで知りたいだけです。情報plistにSBUsesNetworkブールフラグを追加する必要があることはわかっていますが、それは私の目的には役立ちません。実際、私はリーチャビリティクラスを使用してインターネットの可用性を識別しているため、機内モードで起動したときにアプリがコードからとSBUsesNetworkフラグから2つのアラートを出します。これら2つのアラートのいずれかを表示したいと思います。だから私は電話が機内モードにあるかどうかをプログラムで知りたいですか?
2697 次
2 に答える
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");
}
于 2016-11-29T11:24:32.313 に答える
-1
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
[infoDict objectForKey:@"SBUsesNetwork"];
お役に立てれば。
于 2013-03-29T04:11:10.363 に答える