如果您遇到问题,请提及您的问题适用的完整平台: IDE:NetBeans / Eclipse / IDEA 桌面操作系统 模拟器 设备
如果您遇到问题,请提及您的问题适用的完整平台: IDE:NetBeans 桌面操作系统Ubuntu 模拟器Codeone模拟器 设备Galaxy三星7 立即使用免费服务(做评估)
我正在尝试实施地理围栏,这是发展的关键部分,到目前为止还没有成功,我遇到的问题很少,如果我错了,请纠正我
1)没有支持在模拟器上测试Geofence。我必须进行更改才能在我的设备上进行构建安装并进行测试,当我看不到预期的结果时,我不知道为什么它会失败并且必须重复过程
2)现在我正在关注这个例子
https://www.codenameone.com/javadoc/com/codename1/location/Geofence.html
我添加了一个带有下方动作监听器的按钮
{
Location loc = new Location();
loc.setLatitude(30.167043);
loc.setLongitude(-74.0059413);
Geofence gf = new Geofence("test", loc, 1999, 100000);
LocationManager.getLocationManager().addGeoFencing(GeofenceListenerImpl.class, gf);
});
我通过使用假gps itenary确保我通过我的设备上的这个位置旅行。当我点击Android按钮时,请求访问设备位置的权限
public class GeofenceListenerImpl implements GeofenceListener {
@Override
public void onExit(String id) {
LocalNotification ln = new LocalNotification();
ln.setId("LnMessage1");
ln.setAlertTitle("Bye ");
ln.setAlertBody("Bye!");
Display.getInstance().scheduleLocalNotification(ln, System.currentTimeMillis() + 80 * 1000, LocalNotification.REPEAT_NONE);
}
@Override
public void onEntered(String id) {
System.out.println("com.mycompany.myapp.GeofenceListenerImpl.onEntered()");
if(Display.getInstance().isMinimized()) {
Display.getInstance().callSerially(() -> {
Dialog.show("Welcome", "Thanks for arriving", "OK", null);
});
} else {
LocalNotification ln = new LocalNotification();
ln.setId("LnMessage");
ln.setAlertTitle("Welcome");
ln.setAlertBody("Thanks for arriving!");
Display.getInstance().scheduleLocalNotification(ln, System.currentTimeMillis() + 80 * 1000, LocalNotification.REPEAT_NONE);
}
}
}
但问题是我从未看到任何通知。任何帮助将不胜感激。
3)我是否需要最小化或关闭应用程序才能使地理围栏工作(我已尝试过两者并且两者都不工作) 4)有没有办法获得地理围栏的创建列表? 5)任何模拟本地模拟器上的行为的方法