來吧來吧,今天閒着有空。暫時沒想到要寫什麼好。等以後把所作的項目都整理一下看看。android
那今天就把我用過整理過的Android項目上的工具類收集整理一下。網絡
/** * 判斷本機是否安裝了某個應用程序 * * @param context * Context對象 * @param packagename * 目標應用程序的包名 * @return true表示已安裝,false表示未安裝 */ public static boolean isAppInstalled(Context context, String packagename) { PackageInfo packageInfo; try { packageInfo = context.getPackageManager().getPackageInfo(packagename, 0); } catch (NameNotFoundException e) { packageInfo = null; e.printStackTrace(); } if (packageInfo == null) { return false; } else { return true; } }
/** * 獲取版本號 * * @param context * Context對象 * @return 版本號 */ public static int getVersionCode(Context context) { PackageManager packageManager = context.getPackageManager(); PackageInfo packageInfo; int versionCode = 0; try { packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0); versionCode = packageInfo.versionCode; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return versionCode; }
/** * 獲取版本名 * * @param context * Context對象 * @return 版本名 */ public static String getVersionName(Context context) { PackageManager packageManager = context.getPackageManager(); PackageInfo packageInfo; String versionName = ""; try { packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0); versionName = packageInfo.versionName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return versionName; }
/** * 安裝apk * * @param context * Context對象 * @param apkFile * apk文件 */ public static void installApp(Context context, File apkFile) { Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(apkFile); intent.setDataAndType(uri, "application/vnd.android.package-archive"); context.startActivity(intent); }
/** * 返回全部應用的名稱 * * @param context * Context對象 * @return 應用程序集合 */ public static List<String> getInstalledInfo(Context context) { List<String> list = new ArrayList<String>(); List<PackageInfo> ps = context.getPackageManager().getInstalledPackages(0); for (PackageInfo packageInfo : ps) { list.add(packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString()); } return list; }
/** * 獲取設備名稱 <br> * 好比:SAMSUNG9300、LEX720 * * @return 設備名稱 */ public static String getPhoneType() { return android.os.Build.MODEL; }
/** * 獲取Android sdk版本 <br> * 好比:android4.三、android6.0 * * @return android sdk版本 */ public static String getAndroidSdkVersionName() { return "android" + android.os.Build.VERSION.RELEASE; }
/** * 獲取手機廠商 * * @return 手機廠商 */ public static String getPhoneManufacture() { return android.os.Build.MANUFACTURER; }
/** * 獲取設備的IMEI * * @param context * Context對象 * @return 設備IMEI */ public static String getImei(Context context) { TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); return tm.getDeviceId(); }
/** * 獲取設備惟一id * * @param context * Context對象 * @return 設備惟一id */ public static String getUniqueId(Context context) { String imei = getImei(context); if (!TextUtils.isEmpty(imei)) return imei; else { String phoneId = getPhoneId(context); if (!TextUtils.isEmpty(phoneId)) return phoneId; } return "unknow"; }
/** * 獲取cpu信息 * * @return cpu信息 */ public static String[] getCpuInfo() { String str1 = "/proc/cpuinfo"; String str2 = ""; String[] cpuInfo = { "", "" }; String[] arrayOfString; try { FileReader fr = new FileReader(str1); BufferedReader localBufferedReader = new BufferedReader(fr, 8192); str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); for (int i = 2; i < arrayOfString.length; i++) { cpuInfo[0] = cpuInfo[0] + arrayOfString[i] + " "; } str2 = localBufferedReader.readLine(); arrayOfString = str2.split("\\s+"); cpuInfo[1] += arrayOfString[2]; localBufferedReader.close(); fr.close(); } catch (IOException e) { } return cpuInfo; }
/** * 獲取SDCard大小 * * @param context * Context對象 * @return SDCard大小 */ public static String getSDTotalSize(Context context) { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long totalBlocks = stat.getBlockCount(); return Formatter.formatFileSize(context, blockSize * totalBlocks); } return "unknow"; }
public class NetworkUtil { /** * 判斷是否有網絡鏈接 * * @param context * Context對象 * @return true表示有網絡,false表示沒有網絡 */ public static boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null) { return mNetworkInfo.isAvailable(); } } return false; } /** * 判斷WIFI網絡是否可用 * * @param context * Context對象 * @return true表示wifi可用,false表示WiFi不可用 */ @SuppressWarnings("deprecation") public static boolean isWifiConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mWiFiNetworkInfo != null) { return mWiFiNetworkInfo.isAvailable(); } } return false; } /** * 判斷MOBILE網絡是否可用 * * @param context * Context對象 * @return true表示可用,false表示不可用 */ @SuppressWarnings("deprecation") public static boolean isMobileConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); if (mMobileNetworkInfo != null) { return mMobileNetworkInfo.isAvailable(); } } return false; } /** * 獲取當前網絡鏈接的類型信息 */ public static int getConnectedType(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { return mNetworkInfo.getType(); } } return -1; } /** * 獲取當前網絡類型 * * @param context * Context對象 * @return 2G/3G/4G/WIFI/NULL/unknown */ public static String getNetType(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final NetworkInfo info = cm.getActiveNetworkInfo(); if (info == null || !info.isAvailable()) { return "no"; } if (info.getType() == ConnectivityManager.TYPE_WIFI) { return "WIFI"; } if (info.getType() == ConnectivityManager.TYPE_MOBILE) { int sub = info.getSubtype(); switch (sub) { case TelephonyManager.NETWORK_TYPE_GPRS: case TelephonyManager.NETWORK_TYPE_EDGE: case TelephonyManager.NETWORK_TYPE_CDMA:// 電信的2G case TelephonyManager.NETWORK_TYPE_1xRTT: case TelephonyManager.NETWORK_TYPE_IDEN: // 以上的都是2G網絡 return "2G"; case TelephonyManager.NETWORK_TYPE_UMTS: case TelephonyManager.NETWORK_TYPE_EVDO_A: case TelephonyManager.NETWORK_TYPE_HSDPA: case TelephonyManager.NETWORK_TYPE_HSUPA: case TelephonyManager.NETWORK_TYPE_HSPA: case TelephonyManager.NETWORK_TYPE_EVDO_B: case TelephonyManager.NETWORK_TYPE_EHRPD: case TelephonyManager.NETWORK_TYPE_HSPAP: // 以上的都是3G網絡 return "3G"; case TelephonyManager.NETWORK_TYPE_LTE: return "4G"; case TelephonyManager.NETWORK_TYPE_UNKNOWN: return "unknown"; default: return "unknown"; } } return "unknown"; } /** * 獲取MAC地址 * * @param context * Context對象 * @return 設備的Mac地址 */ public static String getMacAddress(Context context) { String macAddress = ""; try { WifiManager wifiMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifiMgr.getConnectionInfo(); macAddress = info.getMacAddress(); } catch (Exception e) { e.printStackTrace(); } return macAddress; } }
public class ScreenUtil { /** * 獲取屏幕密度 * * @param context * Context對象 * @return 密度值 */ public static float getDensity(Context context) { try { DisplayMetrics dm = new DisplayMetrics(); dm = context.getResources().getDisplayMetrics(); float density = dm.density; return density; } catch (Throwable e) { e.printStackTrace(); return 1.0f; } } /** * 獲取屏幕的寬度(單位:像素) * * @param context * Context對象 * @return 寬度值 */ public static int getScreenWidth(Context context) { try { DisplayMetrics dm = new DisplayMetrics(); dm = context.getResources().getDisplayMetrics(); int screenWidth = dm.widthPixels; return screenWidth; } catch (Throwable e) { e.printStackTrace(); return 0; } } /** * 獲取屏幕的高度(單位:像素) * * @param context * Context對象 * @return 高度值 */ public static int getScreenHeight(Context context) { try { DisplayMetrics dm = new DisplayMetrics(); dm = context.getResources().getDisplayMetrics(); int screenHeight = dm.heightPixels; return screenHeight; } catch (Throwable e) { e.printStackTrace(); return 0; } } /** * 獲取屏幕分辨率 * * @param context * Context對象 * @return 分辨率 */ public static String getScreenSize(Context context) { return getScreenHeight(context) + "*" + getScreenWidth(context); } /** * dp轉像素(px) * * @param context * Context對象 * @param dp * dp值 * @return px值 */ public static float dpToPx(Context context, float dp) { if (context == null) { return -1; } return dp * context.getResources().getDisplayMetrics().density; } /** * 像素(px)轉dp * * @param context * Context對象 * @param px * px值 * @return dp值 */ public static float pxToDp(Context context, float px) { if (context == null) { return -1; } return px / context.getResources().getDisplayMetrics().density; } public static int dpToPxInt(Context context, float dp) { return (int) (dpToPx(context, dp) + 0.5f); } public static int pxToDpCeilInt(Context context, float px) { return (int) (pxToDp(context, px) + 0.5f); } }
/** * 獲取運營商 * * @param context * Context對象 * @return 運營商編識別碼 */ public static String getProvidersName(Context context) { String providerName = ""; try { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String IMSI = telephonyManager.getSubscriberId(); // IMSI號前面3位460是國家,緊接着後面2位 00 02是中國移動,01是中國聯通,03是中國電信。 if (TextUtils.isEmpty(IMSI)) return providerName; if (IMSI.startsWith("46000")) // 中國移動 providerName = "46000"; else if (IMSI.startsWith("46002")) { // 中國移動 providerName = "46002"; } else if (IMSI.startsWith("46001")) // 中國聯通 providerName = "46001"; else if (IMSI.startsWith("46003")) // 中國電信 providerName = "46003"; } catch (Exception e) { e.printStackTrace(); } return providerName; } /** * 獲取手機號 * * @param context * Context對象 * @return 手機號 */ public static String getPhoneNumber(Context context) { String number = ""; TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); number = tm.getLine1Number(); return number == null ? "" : number.replace("+86", ""); } /** * 獲取SIM卡的ISO國家碼 * * @param context * Context對象 * @return ISO國家碼 */ public static String getCountry(Context context) { String number = ""; TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); number = tm.getSimCountryIso(); return number; }