2017-10-18 8 views
1

iOSでホットスポットの状態を検出しようとしています。そのために私はすぐにSCDynamicStore.hのヘッダを変更する

let sc = SCDynamicStoreCreate(nil, "com.apple.wirelessmodemsettings.MISManager" as CFString, nil, nil) 
let info = SCDynamicStoreCopyValue(sc, "com.apple.MobileInternetSharing" as CFString) 

しかしSCDynamicStoreCreateSCDynamicStoreCopyValueを次のようにSystemConfiguration APIを使用する必要がiOS版では使用できません。私はSCDynamicStore.hファイルを修正し、これらの機能をiOSで利用できるようにする必要があります(現在、Macのみで利用可能とマークされています)。

このリンクには、重複したヘッダーを作成することによってこれを行う方法が記載されています。SCDynamicStoreCreate is unavailable: not available on iOS。しかし、この方法は迅速に私のために働いていません。

これは迅速にどのように達成できますか?

ありがとうございました

答えて

1

これを行う方法はいくつかあります。

すべてのSwiftで、ヘッダーファイルを変更する必要はありません。

import SystemConfiguration 

    // Define types for each of the calls of interest 
    typealias TSCDynamicStoreCreate = @convention (c) (_ allocator: CFAllocator?, _ name: CFString, _ callout: SystemConfiguration.SCDynamicStoreCallBack?, _ context: UnsafeMutablePointer<SCDynamicStoreContext>?) -> SCDynamicStore? 
    typealias TSCDynamicStoreCopyValue = @convention (c) (_ store: SCDynamicStore?, _ key: CFString) -> CoreFoundation.CFPropertyList? 

    // Get a handle to the library, the flag `RT_NOLOAD` will limit this 
    // to already loaded libraries 
    let hLibrary = dlopen("/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration", RTLD_NOLOAD); 

    // Load addresses of the functions from the library 
    let MySCDynamicStoreCreate = unsafeBitCast(dlsym(hLibrary, "SCDynamicStoreCreate"), to: TSCDynamicStoreCreate.self) 
    let MySCDynamicStoreCopyValue = unsafeBitCast(dlsym(hLibrary, "SCDynamicStoreCopyValue"), to: TSCDynamicStoreCopyValue.self) 

    // Setup constants 
    let name = "com.apple.wirelessmodemsettings.MISManager" as CFString 
    let key = "com.apple.MobileInternetSharing" as CFString 

    // Call the functions through the looked up addresses 
    let dynamicStore = MySCDynamicStoreCreate(nil, name, nil, nil) 
    let plist = MySCDynamicStoreCopyValue(dynamicStore, key) 
    dump(plist) 
+1

ありがとう@idz ...それは完璧に細かく動作します – Suraj

関連する問題