在 Android 中,当某些事件发生时(例如 wifi 扫描结果可用,启动过程完成),可以通过广播接收器机制通知当前未运行的应用程序。无论如何这是否可能,以便即使 Worklight 应用程序未运行(包括未在后台运行)也可以调用 wifi/geo 触发器?
2 回答
关于通知您的应用程序的 wifi/连接更改,这看起来是可能的,因为它是标准系统事件。由于您需要实现广播接收器,因此可能需要自定义本机代码。您需要在应用程序的 AndroidManifest.xml 文件中注册您的接收器。看看http://developer.android.com/reference/android/net/ConnectivityManager.html和http://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/
关于地理位置触发器,目前尚不清楚您正在寻找什么样的触发器。这就是我在 Android 文档中看到的全部内容:http: //developer.android.com/reference/android/location/GpsStatus.html和http://developer.android.com/reference/android/content上的标准广播操作/Intent.html#constants
如果您正在寻找类似地理围栏的东西,则需要应用程序逻辑来确定何时触发事件,这意味着需要运行应用程序或服务。因此,尽管您的广播接收器的 onReceive() 方法可以在地理事件上被调用,但谁会触发该事件?
Worklight API 不支持在应用程序根本不运行(甚至在后台也不运行)时激活触发器。您可以尝试将 Worklight Android Native SDK 与 cmarcelk 的建议一起使用。或者,您可以在本机服务中使用 Worklight Android 触发器以及广播接收器机制,以便它在启动时自动运行。然后,您可以使用 Intent 从触发器回调中打开应用程序。