add macos
This commit is contained in:
45
client/internal/winapi/wifi_darwin.m
Normal file
45
client/internal/winapi/wifi_darwin.m
Normal file
@@ -0,0 +1,45 @@
|
||||
#import <CoreWLAN/CoreWLAN.h>
|
||||
#import <CoreLocation/CoreLocation.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
static CLLocationManager *locationManager = nil;
|
||||
|
||||
void RequestLocationPermission() {
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
if (locationManager == nil) {
|
||||
locationManager = [[CLLocationManager alloc] init];
|
||||
}
|
||||
if (@available(macOS 10.15, *)) {
|
||||
[locationManager requestWhenInUseAuthorization];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
char* ssid;
|
||||
char* bssid;
|
||||
} CWifiInfo;
|
||||
|
||||
CWifiInfo GetCurrentWifiInfo() {
|
||||
CWifiInfo info;
|
||||
info.ssid = NULL;
|
||||
info.bssid = NULL;
|
||||
|
||||
@autoreleasepool {
|
||||
CWWiFiClient *client = [CWWiFiClient sharedWiFiClient];
|
||||
if (client != nil) {
|
||||
CWInterface *interface = [client interface];
|
||||
if (interface != nil) {
|
||||
NSString *ssidStr = [interface ssid];
|
||||
NSString *bssidStr = [interface bssid];
|
||||
if (ssidStr != nil) {
|
||||
info.ssid = strdup([ssidStr UTF8String]);
|
||||
}
|
||||
if (bssidStr != nil) {
|
||||
info.bssid = strdup([bssidStr UTF8String]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
Reference in New Issue
Block a user