iPhoneが飛行機モードにあるかどうかを検出しますか?

iPhoneが飛行機モードにあるかどうかを検出する方法が必要ですが、私はいくつかの調査を行い、

iphone飛行機モードを確認する方法は?

どちらもうまくいきませんが、飛行機モードではSBUsersNetworkに警告を表示するように設定できますが、ユーザーにWIFIの切り替えを要求しますが、私のアプリには3GとWIFIを使用する必要があります。私は自分の仕事をすることができますCoreTelephonyでは、前方に、方法ですか?

ありがとう!

2

2 答え

基本的に:いいえ。あなたはこれをすることはできません。あなたができることは、Appleの Reachability サンプルを使用して検出することですネットワーク接続が利用可能な場合。

5
追加された

パブリックAPIを使用して行うことはできません。

IOS 5.1では、文書化されていないプライベートAPIを使用して、次のようにすることができます。これはAppleによって推奨されておらず、App Storeに出荷することはできません。

以下の内容をRadioPreferences.hに貼り付けてコピーします。


@protocol RadiosPreferencesDelegate
-(void)airplaneModeChanged;
@end


@interface RadiosPreferences : NSObject
{
    struct __SCPreferences *_prefs;
    int _applySkipCount;
    id  _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  delegate;//@synthesize delegate=_delegate;

@end

次に、以下のように試してください。

id rp = [[RadiosPreferences alloc] init];

BOOL status = [rp airplaneMode];

return status;
3
追加された
アプリケーションのRadioPreferences.hファイルはどこにあるのですか?上記のコードをコピーして貼り付けることができます。また、RadioPreferences.hにアクセスするためにプロジェクトに追加する必要があるAPI /フレームワークもあります。
追加された 著者 Mehul Thakkar,