2016-12-12 2 views
1

Je travaille sur une application iOS qui a besoin de se connecter automatiquement à un réseau WiFi. Nous avions demandé une extension NEHotspotHelper d'Apple qui est approuvée. Maintenant, j'essaye de me connecter automatiquement au réseau WiFi. Mais l'appel à la méthode NEHotspotHelper.register ne retourne jamais. J'ai ajouté le droit com.apple.developer.networking.HotspotHelper dans le fichier de droit de l'application et j'utilise également un profil de provisionnement nouvellement créé avec ledit droit activé. Essayer de le faire fonctionner la semaine dernière. On dirait une petite chose que je trouve difficile à attraper. S'il vous plaît aider.Appel à NEHotspotHelper.register ne renvoie jamais

Ci-dessous est mon code

if let strWiFi = UserDefaults.standard.value(forKey:"WiFiSSID") as? String { 
    let queue = DispatchQueue(label: "com.mycompany.myapp") 
    NEHotspotHelper.register(options: nil, queue: queue, 
    handler: {(_ cmd: NEHotspotHelperCommand) -> Void in 
    if cmd.commandType == .evaluate || cmd.commandType == .filterScanList { 
    var hotspot:NEHotspotNetwork? 
    for network: NEHotspotNetwork in cmd.networkList! { 
    print("network name:\(network.ssid)") 
    if (network.ssid == strWiFi) { 
    network.setConfidence(.high) 
    let strPassword = UserDefaults.standard.value(forKey:"WiFiPassword") as? String 
    network.setPassword(strPassword!) 
    hotspot = network 
    } 
    } 
    let response = cmd.createResponse(.success) 

    if(hotspot != nil) { 
    response.setNetwork(hotspot!) 
    } 

    response.deliver() 
    } 
    }) 

Toute aide est très appréciée!

EDIT: Maintenant, quand j'ai essayé de déconnecter puis de reconnecter au WiFi, l'enregistrement réussit mais ne renvoie que les détails du réseau actuellement connecté. J'ai besoin des détails de tous les réseaux WiFi autour.

Répondre

1

Est nécessaire d'entrer dans Paramètres -> Wi-fi, l'aide uniquement exécuter si entrer dans l'écran, j'ai essayé de faire aussi se connecter automatiquement, mais l'utilisateur doit sélectionner le réseau pour se connecter la première fois. Si l'utilisateur choisit de se connecter au réseau une fois, il se peut qu'il se connecte automatiquement la prochaine fois, car il peut entrer la commande Maintenir.

Voir plus: https://forums.developer.apple.com/message/138756#138756