私はApp Storeにいなくても構わないので、プライベートAPIを使用して自分のニーズを満たすことに問題はありません。 私はMobileWiFi. framework to read the RSSI value for the wireless network the phone is currently connected to. I've included the
https://github.com/Cykey/ios-reversed-headers/tree/c613e45f3ee5ad9f85ec7d43906cf69ee812ec6a/MobileWiFi `ヘッダーを作成し、ブリッジヘッダーを使用して迅速なプロジェクトに組み込み、コードを次のように記述しました。すみません、私は初心者です。プライベートAPIを使用するWiFi RSSIの値を読み取るには
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) {
result = libHandle.debugDescription
let _createManagerPtr = dlsym(libHandle, "WiFiManagerClientCreate")
let _clientCopyDevicesPtr = dlsym(libHandle, "WiFiManagerClientCopyDevices")
let _clientCopyPropertyPtr = dlsym(libHandle, "WiFiDeviceClientCopyProperty")
if (_createManagerPtr != nil) && (_clientCopyDevicesPtr != nil) && (_clientCopyPropertyPtr != nil) {
let _createManager = unsafeBitCast(_createManagerPtr, to: _WiFiManagerClientCreate.self)
let _clientCopyDevices = unsafeBitCast(_clientCopyDevicesPtr, to: _WiFiManagerClientCopyDevices.self)
let _clientCopyProperty = unsafeBitCast(_clientCopyPropertyPtr, to: _WiFiDeviceClientCopyProperty.self)
let manager = _createManager(kCFAllocatorDefault, 0)
let devices = _clientCopyDevices(manager)
let client = CFArrayGetValueAtIndex(devices, 0)
let data = _clientCopyProperty(client!, "RSSI" as CFString)
let rssi = CFDictionaryGetValue(data as! CFDictionary, "RSSI_CTL_AGR")
NSLog("RSSI: \(rssi)")
}
dlclose(libHandle)
}
エラーを生成
fatal error: unexpectedly found nil while unwrapping an Optional value which stems from trying to call _createManager
のGithubでdemo projectですが、資格が必要なの、それは非上で動作しますジェイルブレイク電話 –
で動作するはずですので、それは動作しませんように思えますjailbrokenデバイス? – user2323838
いいえ、実行に必要な権限を取得できないため –