WiFi围栏初始事件陷阱

时间:2014-08-07 15:15:27

标签: ibm-mobilefirst worklight-geolocation

我有一个测试应用程序有两个按钮,一个是启动Wifi跟踪,另一个是停止。当我启动Wifi跟踪时,如果范围内有一个接入点,并且没有触发入口事件,那么我不知道是否在围栏中。有没有一种方法,当跟踪开始时,我可以得到通知,我在围栏内?

function startWifiTracking() {
    //create the geofences and triggers 
    var triggers = {
        Wifi : {
                fc_entry : {    type : 'Enter', 
                                areaAccessPoints : [{SSID: 'test', MAC: '12:12:12:12:12:12'}], 
                                callback : entry1, 
                                otherAccessPointsAllowed : true},
                fc_exit : {     type : 'Exit', 
                                areaAccessPoints : [{SSID: 'test', MAC: '12:12:12:12:12:12'}], 
                                callback : exited1, 
                                otherAccessPointsAllowed : true}
        }};

    //create the wifi policy for the wifi access points to be monitored
    var policy = {
        Wifi : {
            interval : 3000,
            signalStrengthThreshold : 15,
            accessPointFilters : [{SSID: 'test', MAC: '*'}]
        }};
    WL.Device.startAcquisition(policy, triggers, acquisitionFailure);
}

//trigger callbacks for each wifi fence
function entry1() { alert('entered'); }
function exited1() { alert('exited'); }
function acquisitionFailure() {alert('failed');}

$(function() {
    $('#btnStart').click( function(){
        startWifiTracking();
    });
});

$(function() {
    $('#btnStop').click( function(){
       WL.Device.stopAcquisition();
    });
});

1 个答案:

答案 0 :(得分:0)

我认为你可以尝试一些不同的东西。

1)使用DwellInside触发器,其dwellingTime参数为0。

2)使用WL.Device.Wifi.acquireVisibleAccessPoints API并检查接收到的接入点数组是否在onSuccess回调中非空。