我目前正在开发要求Android的位置服务始终处于活动状态的应用。
现在,我能够在用户恢复应用程序时(在onResume()事件中检测用户是激活还是停用了位置服务。
问题是,如果用户通过快速设置菜单停用了定位服务,则无法检测到该事件。
我怎么知道用户何时通过快速设置激活/禁用设备的位置?
谢谢。
我的代码:
...
BroadcastReceiver mGpsSwitchStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() != null && intent.getAction().matches("android.location.PROVIDERS_CHANGED")) {
// Make an action or refresh an already managed state.
Log.d("vtApp", "CHANGED");
}
}
};
currentActivity.registerReceiver(mGpsSwitchStateReceiver, new IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION));
我遵循的参考文献:
How to trigger broadcast receiver when gps is turn on/off?
我有同样的问题。这对我有用