Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无线广播接收器多意图_Java_Android_Broadcastreceiver_Android Broadcastreceiver_Wifimanager - Fatal编程技术网

Java 无线广播接收器多意图

Java 无线广播接收器多意图,java,android,broadcastreceiver,android-broadcastreceiver,wifimanager,Java,Android,Broadcastreceiver,Android Broadcastreceiver,Wifimanager,我开发了一个使用Wifi广播接收器的应用程序。我的要求是通过获取IP地址在Wifi连接到路由器时调用函数,以及在Wifi与以前连接的路由器断开连接时调用另一个函数 我在清单中使用了这个 <action android:name="android.net.wifi.STATE_CHANGE" /> 直到KitKat,每件事都起了作用 但当我用棒棒糖测试这个版本的时候,我收到了很多次的来电 当我打开WiFi时,其结果是 声明: 空闲--连接--身份验证--捕获检查--连接--连接。

我开发了一个使用Wifi广播接收器的应用程序。我的要求是通过获取IP地址在Wifi连接到路由器时调用函数,以及在Wifi与以前连接的路由器断开连接时调用另一个函数

我在清单中使用了这个

<action android:name="android.net.wifi.STATE_CHANGE" />

直到KitKat,每件事都起了作用 但当我用棒棒糖测试这个版本的时候,我收到了很多次的来电

当我打开WiFi时,其结果是 声明: 空闲--连接--身份验证--捕获检查--连接--连接。 有时也会断开连接

关闭时。 已连接--已断开--已断开--已断开--已断开

NetworkInfo的调试结果如下:

[type: WIFI[], state: CONNECTING/CONNECTING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/AUTHENTICATING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/AUTHENTICATING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/CONNECTING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/OBTAINING_IPADDR, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/CAPTIVE_PORTAL_CHECK, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/CAPTIVE_PORTAL_CHECK, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "DJ     Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false].
我恳请在这方面帮助我。打开wifi时使用我的代码连接状态会执行多次,并且断开连接状态也会执行多次

当WIFI关闭时,将生成连接状态,然后生成4-5个断开状态

我用HTC手机进行测试

我使用了简单的编码,我是否需要对此进行更深入的条件检查?(详细说明等)


处理此解决方案的最佳方法是什么?

当您使用intent filter
android.net.wifi.STATE\u CHANGE
时,它将多次触发广播接收器。例如,如果您正在打开wifi,则广播的
onreceive
将在任何地方呼叫1-5次。因此,它将为您提供多个
NetworkInfo.State.CONNECTED
,以及同样的断开连接


因此,如果您只想连接或断开一个连接,它的输出意味着只需使用一个布尔标志,并以一种方式正确设置它,即首先启用wifi意味着它应忽略剩余的wifi连接意图,同样,wifi也应断开连接。

感谢您的编辑和更正
[type: WIFI[], state: CONNECTING/CONNECTING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/AUTHENTICATING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/AUTHENTICATING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/CONNECTING, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/OBTAINING_IPADDR, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/CAPTIVE_PORTAL_CHECK, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTING/CAPTIVE_PORTAL_CHECK, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "DJ Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false]

[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "DJ     Hostspot", roaming: false, failover: false, isAvailable: true, isConnectedToProvisioningNetwork: false].