iPhoneが機内モードになっているかどうかを検出する方法が必要です。調査したところ、次のことがわかりました。
これは機能しません。また、機内モードでアラートを表示するようにSBUsersNetworkを設定できますが、ユーザーにWIFIをオンにするように求められますが、アプリではユーザーが3Gを使用する必要があり、WIFIは機能しないため、ストレートはありますか前進する方法、CoreTelephonyで私は自分の仕事をすることができますか?
ありがとう!
iPhoneが機内モードになっているかどうかを検出する方法が必要です。調査したところ、次のことがわかりました。
これは機能しません。また、機内モードでアラートを表示するようにSBUsersNetworkを設定できますが、ユーザーにWIFIをオンにするように求められますが、アプリではユーザーが3Gを使用する必要があり、WIFIは機能しないため、ストレートはありますか前進する方法、CoreTelephonyで私は自分の仕事をすることができますか?
ありがとう!
基本的に:いいえ。これはできません。できることは、AppleのReachabilityサンプルを使用して、ネットワーク接続が利用可能かどうかを検出することです。
パブリック API を使用して行うことはできません。
IOS 5.1 では、文書化されていないプライベート API を使用して次のように実行できます。これは Apple が推奨するものではなく、App Store に出荷することはできません。
以下の内容をコピーして RadioPreferences.h に貼り付けます
@protocol RadiosPreferencesDelegate
-(void)airplaneModeChanged;
@end
@interface RadiosPreferences : NSObject
{
struct __SCPreferences *_prefs;
int _applySkipCount;
id <RadiosPreferencesDelegate> _delegate;
BOOL _isCachedAirplaneModeValid;
BOOL _cachedAirplaneMode;
BOOL notifyForExternalChangeOnly;
}
- (id)init;
- (void)dealloc;
@property(nonatomic) BOOL airplaneMode;
- (void)refresh;
- (void)initializeSCPrefs:(id)arg1;
- (void)notifyTarget:(unsigned int)arg1;
- (void)synchronize;
- (void *)getValueForKey:(id)arg1;
- (void)setValue:(void *)arg1 forKey:(id)arg2;
@property(nonatomic) BOOL notifyForExternalChangeOnly; // @synthesize notifyForExternalChangeOnly;
@property(nonatomic) id <RadiosPreferencesDelegate> delegate; // @synthesize delegate=_delegate;
@end
次に、以下のようにしてみてください。
id rp = [[RadiosPreferences alloc] init];
BOOL status = [rp airplaneMode];
return status;