Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Monitoring WiFi access points

Cette traduction est incomplète. Aidez à traduire cet article depuis l'anglais.

Avec les privilèges UniversalXPConnect le code peut scruter les points d'accès WiFi disponibles afin d'obtenir des informations à leur sujet, entre autres leur SSID, adresses MAC et la force du signal. Cette fonctionnalité a été introduite principalement pour permettre aux services de geolocalisation d'utiliser les services de localisation basés sur le WiFi.

Exemple

Cette exemple affiche simplement une liste des points d'accès diponibles.

<html>
<head>
<title>Exemple de scrutation WiFi</title>
<script>

var count = 0;

function test() {
}

test.prototype =
{
  onChange: function (accessPoints)
  {
    netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
    var d = document.getElementById("d");
    d.innerHTML = "";

    for (var i=0; i<accessPoints.length; i++) {
      var a = accessPoints[i];
      d.innerHTML += "<p>" + a.mac + " " + a.ssid + " " + a.signal + "</p>";
    }

    var c = document.getElementById("c");
    c.innerHTML = "<p>" + count++ + "</p>";

  },

  onError: function (value) {
     alert("error: " +value);
  },

  QueryInterface: function(iid) {
        netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
        if (iid.equals(Components.interfaces.nsIWifiListener) ||
            iid.equals(Components.interfaces.nsISupports))
            return this;
        throw Components.results.NS_ERROR_NO_INTERFACE;
   },
}

  netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

  var listener = new test();
  var wifi_service = Components.classes["@mozilla.org/wifi/monitor;1"].getService(Components.interfaces.nsIWifiMonitor);

  wifi_service.startWatching(listener);

</script>
</head>

<body>
<div id="d"><p></p></div>
<div id="c"><p></p></div>
</body>
</html>

L'objet nsIWifiListener

La première action de ce code est de prototyper l'objet écouteur qui recevra les notifications de changement dna sla liste des points d'accès. Cet objet est décrit par les lignes 11 à 40.

La méthode onChange() (lignes 13 à 27) commence par activer les privilèges UniversalXPConnect, puis vide le div (d) qui va recevoir la liste des points daccès mis à jour. La boucle lignes 19 à 22 itère ensuite sur la liste des points d'accès reçus dans le tableau accessPoints et les ajoute au contenu du div.

Par la suite le div c est mis à jour avec le nombre de fois où liste a été  renouvellée.

La méthode onError() fait simplement surgir une laert qui affiche le code erreur reçu.

Lancer la scrutation des points d'accès

Pour commencer la scrutation des points d'accès, on instancie l'écouteur (ligne 44) puis  on attrape une référence à l'interface de scrutation WiFi ligne 45. La scrutation commence ligne 47 en appelant la méthode startWatching() sur l'interface.

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : fluxine
 Dernière mise à jour par : fluxine,