Использование частного API для чтения значения WiFi RSSI ⇐ IOS
Использование частного API для чтения значения WiFi RSSI
Я работаю над чем-то, что не обязательно должно быть в App Store, поэтому у меня нет проблем с использованием частных API для удовлетворения моих потребностей. Я пытаюсь использовать MobileWiFi. framework для чтения значения RSSI для беспроводной сети, к которой в данный момент подключен телефон. Я включил заголовкиhttps://github.com/Cykey/ios-reversed-headers/tree/c613e45f3ee5ad9f85ec7d43906cf69ee812ec6a/MobileWiFi` и использовал связующий заголовок, чтобы включить их в свой быстрый проект, и написал код следующим образом. . Извините, пожалуйста, я новичок.
import SystemConfiguration.CaptiveNetwork typealias _WiFiManagerClientCreate = @convention(c) (CFAllocator, CInt) -> UnsafeRawPointer typealias _WiFiManagerClientCopyDevices = @convention(c) (UnsafeRawPointer) -> CFArray typealias _WiFiDeviceClientCopyProperty = @convention(c) (UnsafeRawPointer, CFString) -> CFPropertyList if let libHandle = dlopen (Paths.ipConfiguration, RTLD_LAZY) { результат = libHandle.debugDescription let _createManagerPtr = dlsym(libHandle, "WiFiManagerClientCreate") let _clientCopyDevicesPtr = dlsym(libHandle, "WiFiManagerClientCopyDevices") let _clientCopyPropertyPtr = dlsym(libHandle, "WiFiDeviceClientCopyProperty") if (_createManagerPtr != ноль) && (_clientCopyDevicesPtr != ноль) && (_clientCopyPropertyPtr != ноль) { let _createManager = unsafeBitCast(_createManagerPtr, to: _WiFiManagerClientCreate.self) let _clientCopyDevices = unsafeBitCast(_clientCopyDevicesPtr, to: _WiFiManagerClientCopyDevices.self) let _clientCopyProperty = unsafeBitCast(_clientCopyPropertyPtr, to: _WiFiDeviceClientCopyProperty.self) пусть менеджер = _createManager(kCFAllocatorDefault, 0) пусть устройства = _clientCopyDevices (менеджер) пусть клиент = CFArrayGetValueAtIndex (устройства, 0) let data = _clientCopyProperty(client!, «RSSI» как CFString) let rssi = CFDictionaryGetValue (данные как! CFDictionary, «RSSI_CTL_AGR») NSLog("RSSI: \(rssi)") } dlclose (libHandle) } При этом возникает ошибка Неустранимая ошибка: неожиданно обнаружено ноль при развертывании необязательного значения, возникшего в результате попытки вызвать _createManager
Я работаю над чем-то, что не обязательно должно быть в App Store, поэтому у меня нет проблем с использованием частных API для удовлетворения моих потребностей. Я пытаюсь использовать MobileWiFi. framework для чтения значения RSSI для беспроводной сети, к которой в данный момент подключен телефон. Я включил заголовкиhttps://github.com/Cykey/ios-reversed-headers/tree/c613e45f3ee5ad9f85ec7d43906cf69ee812ec6a/MobileWiFi` и использовал связующий заголовок, чтобы включить их в свой быстрый проект, и написал код следующим образом. . Извините, пожалуйста, я новичок.
import SystemConfiguration.CaptiveNetwork typealias _WiFiManagerClientCreate = @convention(c) (CFAllocator, CInt) -> UnsafeRawPointer typealias _WiFiManagerClientCopyDevices = @convention(c) (UnsafeRawPointer) -> CFArray typealias _WiFiDeviceClientCopyProperty = @convention(c) (UnsafeRawPointer, CFString) -> CFPropertyList if let libHandle = dlopen (Paths.ipConfiguration, RTLD_LAZY) { результат = libHandle.debugDescription let _createManagerPtr = dlsym(libHandle, "WiFiManagerClientCreate") let _clientCopyDevicesPtr = dlsym(libHandle, "WiFiManagerClientCopyDevices") let _clientCopyPropertyPtr = dlsym(libHandle, "WiFiDeviceClientCopyProperty") if (_createManagerPtr != ноль) && (_clientCopyDevicesPtr != ноль) && (_clientCopyPropertyPtr != ноль) { let _createManager = unsafeBitCast(_createManagerPtr, to: _WiFiManagerClientCreate.self) let _clientCopyDevices = unsafeBitCast(_clientCopyDevicesPtr, to: _WiFiManagerClientCopyDevices.self) let _clientCopyProperty = unsafeBitCast(_clientCopyPropertyPtr, to: _WiFiDeviceClientCopyProperty.self) пусть менеджер = _createManager(kCFAllocatorDefault, 0) пусть устройства = _clientCopyDevices (менеджер) пусть клиент = CFArrayGetValueAtIndex (устройства, 0) let data = _clientCopyProperty(client!, «RSSI» как CFString) let rssi = CFDictionaryGetValue (данные как! CFDictionary, «RSSI_CTL_AGR») NSLog("RSSI: \(rssi)") } dlclose (libHandle) } При этом возникает ошибка Неустранимая ошибка: неожиданно обнаружено ноль при развертывании необязательного значения, возникшего в результате попытки вызвать _createManager
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение