4

私の質問は、IOSのプライベートAPIについてです。WiFi接続を管理するためのAPIはありますか?たとえば、Apple80211.frameworkを使用してWiFiネットワークをスキャンしていますが、接続には使用できません。

私のアプリはappstore用ではありません。

4

4 に答える 4

6

iOS11パブリックAPIの後にプログラムでwifiネットワークに接続できます。次のようにSSIDとパスワードを使用してwifiに接続できます。

迅速

var configuration = NEHotspotConfiguration.init(ssid: "wifi name", passphrase: "wifi password", isWEP: false)
configuration.joinOnce = true

NEHotspotConfigurationManager.shared.apply(configuration) { (error) in
    if error != nil {
        //an error occurred
        print(error?.localizedDescription)
    }
    else {
        //success
    }
}

忘れないでくださいimport NetworkExtension

于 2017-09-19T15:26:19.640 に答える
3

私は昨年この問題に遭遇し、かなり掘り下げた後、SOLStumblerと呼ばれる有用な例に出くわしました。このアプリが機能するには、デバイスがジェイルブレイクされている必要があります。SOLStumblerを変更し、githubにサンプルアプリを投げました。IPConfigurationバンドルを使用してApple80211フレームワークにアクセスし、ネットワークに関連付けることができます。readmeには、カスタムビルド手順が含まれています。

https://github.com/devinshively/wifiAssociate

于 2013-04-13T05:10:16.917 に答える
2

プライベートAPIはもう必要ありません!iOS 11では、Appleは、アプリを離れることなくプログラムでWiFiネットワークに参加するために使用できるパブリックAPIを提供しました。

使用する必要のあるクラスはと呼ばれNEHotspotConfigurationます。

Hotspotこれを使用するには、アプリ機能で機能を有効にする必要があります(機能の追加)。簡単な作業例:

NEHotspotConfiguration *configuration = [[NEHotspotConfiguration
 alloc] initWithSSID:@“SSID”];
configuration.joinOnce = YES;

[[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:nil];

これにより、ユーザーは「SSID」WiFiネットワークに参加するように求められます。ユーザーがアプリを離れるまで、WiFiに接続されたままになります。

これは、実際のデバイスでこのコードを実行して機能させるために必要なシミュレーターでは機能しません。

詳細はこちら: https ://developer.apple.com/documentation/networkextension/nehotspotconfiguration

于 2017-09-16T17:00:03.907 に答える
0

構成プロファイルをロードできるiOSのどのバージョンでも可能です。アプリは、目的のネットワーククレデンシャルを使用してプロファイルを生成し、モバイルSafariにプロファイルを提供するWebサーバーをホストする必要があります。

于 2017-09-20T06:55:53.620 に答える