Java 检测位置设置从快速设置更改

Java 检测位置设置从快速设置更改,java,android,location,Java,Android,Location,我目前正在开发一个应用程序,要求Android的位置服务始终处于活动状态 现在,我能够检测用户在恢复应用程序时是否激活或停用位置服务(在onResume()事件中) 问题是,如果用户通过“快速设置”菜单停用位置服务,我将无法检测到事件 我如何知道用户何时通过快速设置激活/停用设备的位置 多谢各位 我的代码: ... BroadcastReceiver mGpsSwitchStateReceiver = new BroadcastReceiver() { @Override pu

我目前正在开发一个应用程序,要求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));
我遵循的参考文献:

我也有同样的问题。 这对我有用

intentFilter.addAction(android.location.LocationManager.PROVIDERS_CHANGED_ACTION);
不要把它和

Intent.ACTION_PROVIDER_CHANGED

它工作得很好。非常感谢。很抱歉花了这么长时间才回答,但当时我决定把这个问题留到以后再说。现在我终于找到了解决问题的时间。你知道如何识别用户何时断开与互联网的连接吗?是通过停用wifi还是通过移动数据?@LuísHenriques不是通过意向过滤器抱歉。但您可以使用
ConnectivityManager.getActiveNetworkInfo
检查internet是否可用。我希望这有帮助