我试图设置一个布尔值为true,如果WiFi处于打开状态。我通过实现广播接收器来获取连接状态。但是,布尔值不止一次被设置为true。你能帮我解决这个问题吗?我只想在连接WiFi时将布尔值设置为true,并且仅在WiFi断开连接时设置为false。代码如下:WiFi状态更改
NetworkInfo info = (NetworkInfo) ((ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE))
.getActiveNetworkInfo();
if (info != null) {
Log.d("wifiRun", "Network available");
ConnectivityManager conMan = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo.State wifi = null;
if (conMan.getNetworkInfo(1).isAvailable())
wifi = conMan.getNetworkInfo(1).getState();
if (wifi == NetworkInfo.State.CONNECTED) {
//|| wifi == NetworkInfo.State.CONNECTING) {
wifiState = true;
Log.d("wifiRun", "wifiState: " + wifiState);
} else {
wifiState = false;
Log.d("wifiRun", "wifiState: " + wifiState);
}
}
清单:
<receiver android:name="com.aws.BatteryUsage.ServiceDefinition">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
好主意。我是否应该在清单文件中提供任何权限? – madhu
哦,是的 - 你说得对。我编辑帖子(添加所需的权限) –
@JacekMilewski:我正在实施这项技术。非常感谢你。最后,我是否应该在清单中为此注册supplicant.CONNECTION_CHANGE_ACTION? – madhu