3

iPhoneが機内モードになっているかどうかを検出する方法が必要です。調査したところ、次のことがわかりました。

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

これは機能しません。また、機内モードでアラートを表示するようにSBUsersNetworkを設定できますが、ユーザーにWIFIをオンにするように求められますが、アプリではユーザーが3Gを使用する必要があり、WIFIは機能しないため、ストレートはありますか前進する方法、CoreTelephonyで私は自分の仕事をすることができますか?

ありがとう!

4

2 に答える 2

5

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

于 2011-11-25T01:38:39.323 に答える
4

パブリック 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;
于 2012-05-14T18:16:42.643 に答える