iOS14以降、Wi-Fi情報を取得する際に位置情報の許可をONにしないとWi-Fi情報が取得できないため、この落とし穴をずっと探していました。同じ問題を抱えている人に役立つことを願っています。
このキーと値のペアを必ず plist ファイルに追加してください。そうしないと、Wi-Fi 情報を取得できません。
if ( @利用可能(iOS 14.0, *)) {
BOOL isFullAccuracy = self .localmanager.accuracyAuthorization == CLAccuracyAuthorizationFullAccuracy;
if (!isFullAccuracy) {
// ユーザーに適用して、正確な位置情報の許可を一時的に有効にします
[ self .localmanager requestTemporaryFullAccuracyAuthorizationWithPurposeKey:@"WantsToGetWiFiSSID"];
}
[NEHotspotNetwork fetchCurrentWithCompletionHandler:^(NEHotspotNetwork * _Nullable currentNetwork) {
self .detail.ssid = currentNetwork.SSID;
self .detail.mac = currentNetwork.BSSID;
self .nameLb.text = currentNetwork.SSID;
}];
}その他{
//現在接続中のWi-Fiデータを取得
CFArrayRef myArray = CNCopySupportedInterfaces();
if (myArray != nil ) {
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
if (myDict != nil ) {
NSDictionary*dict = (NSDictionary*)CFBridgingRelease(myDict);
NSLog(@"wifi情報%@", dict);
ssid = [dict valueForKey:@"SSID"];
self .detail.ssid = ssid;
自己.nameLb.text = ssid;
self .detail.mac = [dict valueForKey:@"BSSID"];
}
}
}