前言
在开发中,经常会遇到一些获取系统状态的需求。往往Android都会给出对应的API。但是我们往往会记不住具体的代码(就像我一样)。所及还是收集一个工具类比较好一点。不罗嗦太多了,下面直接看代码、看注释。
public class SystemUtil {
/**
* 检查WIFI是否连接
*/
public static boolean isWifiConnected(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
return true;
}
return false;
}
/**
* 检查手机网络(4G/3G/2G)是否连接
*/
public static boolean isMobileNetworkConnected(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
return true;
}
return false;
}
/**
* 检查是否有可用网络
*/
public static boolean isNetworkConnected(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
return connectivityManager.getActiveNetworkInfo() != null;
}
/**
* 获取网络类型 wifi或者移动网络
*
* @return 0无网络 1 wifi 2移动网络
*/
public static int getNetworkType(Context context) {
if (!isNetworkConnected(context)) {//先判断是否有网络
return 0;
}
if (isWifiConnected(context)) {
return 1;
}
if (isMobileNetworkConnected(context)) {
return 2;
}
return 0;
}
/**
* 保存文字到剪贴板
*
* @param context
* @param text
*/
public static void copyToClipBoard(Context context, String text) {
ClipData clipData = ClipData.newPlainText("url", text);
ClipboardManager manager = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
manager.setPrimaryClip(clipData);
}
}
未完待续。。。。
欢迎大家提出需求,共同学习、共同积累。