Android 可用于侦听移动数据启用和禁用事件的意图过滤器

Android 可用于侦听移动数据启用和禁用事件的意图过滤器,android,intentfilter,Android,Intentfilter,实际上,在我的应用程序中,如果移动数据包打开/关闭,我必须显示切换按钮打开/关闭 但是,如果我的WiFi已经打开,我的本地boradcast就无法收听移动数据包开/关事件。事实上,据我所知,如果我的WiFi打开,那么移动数据包启用和禁用事件不会影响连接状态。这就是为什么我的一些意图过滤器永远不起作用 android.net.conn.CONNECTIVITY\u更改 我需要一个与android.net.wifi.wifi_STATE_类似的意向过滤器,这样每当手机数据包打开或关闭事件触发时,我的

实际上,在我的应用程序中,如果移动数据包打开/关闭,我必须显示切换按钮打开/关闭

但是,如果我的WiFi已经打开,我的本地boradcast就无法收听移动数据包开/关事件。事实上,据我所知,如果我的WiFi打开,那么移动数据包启用和禁用事件不会影响连接状态。这就是为什么我的一些意图过滤器永远不起作用

android.net.conn.CONNECTIVITY\u更改


我需要一个与android.net.wifi.wifi_STATE_类似的意向过滤器,这样每当手机数据包打开或关闭事件触发时,我的广播都可以轻松收听。我可以更改我的小部件。

我认为在你的应用程序中,你需要导入WifiManager类。 WifiManagerclass提供用于管理Wi-Fi连接所有方面的主要API。通过调用 Context.getSystemServiceContext.WIFI\u服务

我不知道在打开或关闭移动数据时我们会收到任何意向过滤器,但下面的代码用于确定移动数据是打开还是关闭

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected())
    //mobile data is on
else 
    //mobile data is off
您可以做的是编写一个自己的服务,它将不断运行上述代码。当移动数据打开时,您可以向您的活动发送广播,告知相同的信息。当移动数据关闭时,情况也是如此

编辑1:- 即使连接了wi-fi,此功能也能正常工作

Edit2:-使用此工具时,不要忘记添加访问\网络\状态权限