1. 判断网络是否可用
public static boolean isNetworkAvailable() {
Context context = MyApplication.getApplication();
if (context == null) return false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo.State wifiState = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
NetworkInfo.State mobileState = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
NetworkInfo.State bluetoothState = null;
if (cm.getNetworkInfo(ConnectivityManager.TYPE_BLUETOOTH) != null) {
bluetoothState = cm.getNetworkInfo(ConnectivityManager.TYPE_BLUETOOTH).getState();
}
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
if (wifiState != null && mobileState != null && NetworkInfo.State.CONNECTED != wifiState && NetworkInfo.State.CONNECTED == mobileState) {
return true;
} else if (wifiState != null && mobileState != null && NetworkInfo.State.CONNECTED == wifiState && NetworkInfo.State.CONNECTED != mobileState) {
return true;
} else if (bluetoothState != null && NetworkInfo.State.CONNECTED == bluetoothState) {
return true;
} else if (wifiState != null && mobileState != null && NetworkInfo.State.CONNECTED != wifiState && NetworkInfo.State.CONNECTED != mobileState) {
return false;
}
return false;
}
2. 判断wifi是否可用
public static int isWifiAvailable() {
Context context = MyApplication.getApplication();
if (context == null) return NO_CONNECT;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
wifiState = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
mobileState = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
if (wifiState != null && mobileState != null && NetworkInfo.State.CONNECTED != wifiState && NetworkInfo.State.CONNECTED == mobileState) {
return MOBILE_CONNECT;
} else if (wifiState != null && mobileState != null && NetworkInfo.State.CONNECTED == wifiState && NetworkInfo.State.CONNECTED != mobileState) {
return WIFI_CONNECT;
} else if (wifiState != null && mobileState != null && NetworkInfo.State.CONNECTED != wifiState && NetworkInfo.State.CONNECTED != mobileState) {
return NO_CONNECT;
}
return NO_CONNECT;
}
3. 获取App版本名称
public static String getAppVersionName(Context context) {
String versionName = "";
try {
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
versionName = pi.versionName;
if (VerifyUtil.isEmpty(versionName)) {
versionName = "";
}
} catch (Exception e) {
e.printStackTrace();
}
return versionName;
}
4. Toast的封装
package com.dream.utils;
import android.os.Handler;
import android.os.Looper;
import android.view.Gravity;
import android.widget.Toast;
import com.dream.MyApplication;
/**
* Toast 统一处理类
*/
public class ToastUtil {
private static volatile ToastUtil sToastUtil = null;
private Toast mToast = null;
public void cancelToast() {
if (mToast != null) {
mToast.cancel();
}
}
/**
* 获取实例
*
* @return
*/
public static ToastUtil getInstance() {
if (sToastUtil == null) {
synchronized (ToastUtil.class) {
if (sToastUtil == null) {
sToastUtil = new ToastUtil();
}
}
}
return sToastUtil;
}
protected Handler handler = new Handler(Looper.getMainLooper());
/**
* 显示Toast,多次调用此函数时,Toast显示的时间不会累计,并且显示内容为最后一次调用时传入的内容
* 持续时间默认为short
*
* @param tips 要显示的内容
* {@link Toast#LENGTH_LONG}
*/
public void showToast(final String tips) {
showToast(tips, Toast.LENGTH_SHORT);
}
public void showToast(final int tips) {
showToast(tips, Toast.LENGTH_SHORT);
}
/**
* 显示Toast,多次调用此函数时,Toast显示的时间不会累计,并且显示内容为最后一次调用时传入的内容
*
* @param tips 要显示的内容
* @param duration 持续时间,参见{@link Toast#LENGTH_SHORT}和
* {@link Toast#LENGTH_LONG}
*/
public void showToast(final String tips, final int duration) {
if (android.text.TextUtils.isEmpty(tips)) {
return;
}
handler.post(new Runnable() {
@Override
public void run() {
mToast = Toast.makeText(MyApplication.getApplication(), tips, duration);
mToast.setGravity(Gravity.CENTER, 0, 0);
mToast.show();
}
});
}
public void showToast(final int tips, final int duration) {
handler.post(new Runnable() {
@Override
public void run() {
mToast = Toast.makeText(MyApplication.getApplication(), tips, duration);
mToast.setGravity(Gravity.CENTER, 0, 0);
mToast.show();
}
});
}
}
调用方式:
1. ToastUtil.getInstance().showToast(R.string.photo_approach_max_size_msg);
2. ToastUtil.getInstance().showToast("Toast test");
3. ToastUtil.getInstance().showToast(R.string.photo_approach_max_size_msg, Toast.LENGTH_SHORT);
4. ToastUtil.getInstance().showToast("Toast test", Toast.LENGTH_SHORT);