ハードウェアの変更を検出することは可能ですか?ネットワークアダプタが変更されたとき(つまり、ユーザーがMacBookをドッキング解除したとき)に送信される更新通知を探しています。ハードウェア/ネットワークアダプタの変更を検出する
私はすでにGoogleで検索しましたが、何も見つかりませんでした。その後、
ハードウェアの変更を検出することは可能ですか?ネットワークアダプタが変更されたとき(つまり、ユーザーがMacBookをドッキング解除したとき)に送信される更新通知を探しています。ハードウェア/ネットワークアダプタの変更を検出する
私はすでにGoogleで検索しましたが、何も見つかりませんでした。その後、
私はAFNetworking
を使用し、それが(アダプターの変更のためのリスニング)、このために使用するのが最も簡単であることがわかってきた
#import <AFNetworking/AFNetworkReachabilityManager.h>
- (instancetype)init
{
self = [super init];
if(self)
{
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:AFNetworkingReachabilityDidChangeNotification
object:nil];
}
return self;
}
-(void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:AFNetworkingReachabilityDidChangeNotification
object:nil];
}
とハンドラを実装します。ここでは
- (void)reachabilityChanged:(NSNotification *)notification
{
NSNumber *s = notification.userInfo[AFNetworkingReachabilityNotificationStatusItem];
AFNetworkReachabilityStatus status = [s integerValue];
//Check value of status here
}
はヘッダーですステータスに使用される定数が表示されます。 https://github.com/AFNetworking/AFNetworking/blob/4fb051898c60051d207ca0c24435766fdf140e34/AFNetworking/AFNetworkReachabilityManager.h
私はSCReachabilityも使用しています
#import <SystemConfiguration/SystemConfiguration.h>
BOOL networkAvailable = NO;
const char *hostName = [NEVER_TRANSLATE(@"google.com") cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityFlags flags = 0;
SCNetworkReachabilityRef target = SCNetworkReachabilityCreateWithName(NULL, hostName);
if (SCNetworkReachabilityGetFlags(target, &flags))
{
if (flags == kSCNetworkFlagsReachable)
{
networkAvailable = YES;
}
}
私が代わりにリスナーとして登録する、特定の時間にネットワークの可用性を検出するために、これを使用しますが、そうではないことを確認これは、あなたが感謝し、私が探していたまさにつまり
をやりたいかどう君は! –