盒子的网络分为有线网和无线网,在一些应用中需要做出相应的判断,例如开机向导的网络设置,最近应客户需求,需要分别为不同的网络状态做出不同的界面和响应。以下是我判断网络状态的代码:
判断是否为有线连接
public static boolean checkEthernet(Context context){
ConnectivityManager conn = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = conn.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
return networkInfo.isConnected();
}
无线wifi需要输入密码连接,通过系统广播判断密码是否正确的方法如下:
判断WiFi密码是否输入正确
if(action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)) {
int linkWifiResult = intent.getIntExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, 123);
if (linkWifiResult == WifiManager.ERROR_AUTHENTICATING) {
Toast.makeText(mContext, mContext.getResources().getString("密码错误"), 3000).show();
}
}
另介绍一个用的比较多的计时器类,可以处理计时中,和计时完成后的逻辑:
class TimeCount extends CountDownTimer {
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);//参数依次为总时长,和计时的时间间隔
}
@Override
public void onFinish() {//计时完毕时触发
//计时完成后的逻辑代码
}
@Override
public void onTick(long millisUntilFinished){//计时过程显示
//还剩millisUntilFinished /1000 秒
}
}
使用方式:创建一个该对象,设置时间,开始计时
private TimeCount time;
time = new TimeCount(6000, 1000);
time.start();