小編整理了一些在Android上常用的工具類;這些工具類在開發app的工程中,有些是必不可少的。
package com.example.administrator.componentdemo;
import android.app.Activity;
import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.DisplayMetrics;
import java.io.File;
import java.io.FileFilter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.regex.Pattern;
/**
* Android常用的工具類
*
*/
public class Utils {
/**
* 判斷網絡是否已經連接
* @param context 上下文
* @return true 已經連接網絡, false 網絡連接失效
* */
public static boolean isNetworkAvailable(Context context){
try{
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm != null){
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni!=null && ni.isConnected()){
if(ni.getState() == NetworkInfo.State.CONNECTED){
return true;
}
}
}
} catch (Exception e){
return false;
}
return false;
}
/**
* 判斷當前網絡是否是WIFI
*
*/
public static boolean isWIFI(Context context){
try{
ConnectivityManager cm = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm != null){
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni!=null && ni.getType() == ConnectivityManager.TYPE_WIFI){
return true;
}
}
} catch (Exception e){
return false;
}
return false;
}
/**
* 判斷當前網絡是否是GPRS
* */
public static boolean is3G(Context context){
try{
ConnectivityManager cm =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(cm != null){
NetworkInfo ni = cm.getActiveNetworkInfo();
if(ni!=null && ni.getType() == ConnectivityManager.TYPE_MOBILE){
return true;
}
}
} catch (Exception e){
}
return false;
}
/**
* 獲取手機分辨率--W
* */
public static int getPhoneHW(Context context){
DisplayMetrics dm = new DisplayMetrics();
((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(dm);
int disW = dm.widthPixels;
return disW;
}
/**
* 獲取手機分辨率--H
* */
public static int getPhoneWH(Context context){
DisplayMetrics dm = new DisplayMetrics();
((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(dm);
int disH = dm.heightPixels;
return disH;
}
/**
* MD5加密
*
* @param str 傳入的密碼
* @return
*/
public static String md5(String str) {
MessageDigest md;
try {
md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
return buf.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return str;
}
/**
* 獲取當前sdk版本
* @return
*/
public static int getAndroidSDKVersion() {
int version = 0;
try {
version = Integer.valueOf(android.os.Build.VERSION.SDK_INT);
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
return version;
}
/**
* 獲取CPU數量
* */
public static int cpuNums(){
int nums = 1;
try{
File file = new File("/sys/devices/system/cpu/");
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File arg0) {
if(Pattern.matches("cpu[0-9]", arg0.getName())){
return true;
}
return false;
}
});
nums = files.length;
} catch (Exception e){
e.printStackTrace();
}
return nums;
}
/**
* 判斷app是否在後臺運行
*
* @param context
* @return
*/
public static boolean isBackgroundRunning(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
}