代号为Geofencing不开火

时间:2016-04-20 11:53:40

标签: android ios location codenameone geofencing

我正在尝试将geofencing实施到我的代号为一个应用程序。我在github上的示例中给出了所有内容,但我的输入和退出方法似乎没有被触发。我在构建提示中包含了GPlayServices以及android.playService。*和ios.locationUsageDescription。

我试过用ios和android设备测试它。

以下是我的代码

在onStart()方法中

public void start() {
    if(current != null){
        current.show();
        return;
    }
    u = new UIBuilder();
    Display.getInstance().lockOrientation(true);

    Location loc = new Location();
    loc.setLatitude(-26.15739);
    loc.setLongitude(28.127099999999928);
    Geofence gf = new Geofence("test", loc, 1000, 100000);

 LocationManager.getLocationManager().addGeoFencing(GeofenceListenerImpl.class, gf);

    if (Preferences.get("userId", "error").equals("error")) {
        setUpLoginForm();
    } else {
        setUpMainPage();
    }
}

实施

public class GeofenceListenerImpl implements GeofenceListener {

public GeofenceListenerImpl() {

}

public void onExit(String id) {
    if(Display.getInstance().isMinimized()) {
        LocalNotification ln = new LocalNotification();
        ln.setId("LnMessage1");
        ln.setAlertTitle("Welcome");
        ln.setAlertBody("Thanks for arriving! isminimized");
        Display.getInstance().scheduleLocalNotification(ln, System.currentTimeMillis() + 1000, LocalNotification.REPEAT_NONE);
    } else {
        Display.getInstance().callSerially(new Runnable(){
            public void run() {
                Dialog.show("Welcome", "Thanks for arriving notminimized ", "OK", null);
            }
        });
    }
}

public void onEntered(String id) {
    if(Display.getInstance().isMinimized()) {
        LocalNotification ln = new LocalNotification();
        ln.setId("LnMessage2");
        ln.setAlertTitle("Welcome");
        ln.setAlertBody("Thanks for arriving! isminimized");
        Display.getInstance().scheduleLocalNotification(ln,  
System.currentTimeMillis() + 1000, LocalNotification.REPEAT_NONE);
    } else {
        Display.getInstance().callSerially(new Runnable(){
            public void run() {
                Dialog.show("Welcome", "Thanks for arriving   
notminimized ", "OK", null);
            }
        });
    }
}

}

1 个答案:

答案 0 :(得分:1)

通过google挖掘后我发现我必须添加构建提示:ios.background_modes = location,现在当应用程序第一次在设备上打开时,它会要求用户允许用户轮询其位置。背景。然而,地理围栏仍然没有触发,我会玩我的价值观。 Android有类似的构建提示吗?因为在Android设备上它仍然没有拉动该位置。