Android工具大杂烩
生活随笔
收集整理的這篇文章主要介紹了
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.3、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:// 電信的2Gcase 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;}?
轉載于:https://www.cnblogs.com/Jhon-Mr/p/9642250.html
總結
以上是生活随笔為你收集整理的Android工具大杂烩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HashMap HashTable Co
- 下一篇: ios 中 KVO